UnityでuGUIを使っている中でレスポンシブデザインを考える必要が出てきたときに必要となりました.この方法を使えば,どのデバイスでも幅と高さを出すことができます.
dpiと解像度
UnityではUnityEngine
名前空間の中にScreen
というクラスがあります.これはその名の通りスクリーンに関する情報をたくさん持っていて,これをつかいます.
float widthInch = Screen.width / Screen.dpi;
float heightInch = Screen.height / Screen.dpi;
これで計算できます.
Screen.width
とScreen.height
はどちらも**「ピクセル数」を返し,Screen.dpi
は「ピクセル数/inch」**,つまり1インチにどれほどピクセル数があるか,の解像度を表します.つまりScreen.width / Screen.dpi
は幅が何インチかを表すことになります.
実際に試してみれば本当にその数字になっていることが確認できるかと思います.
さいご
いやそれにしてもuGUIは使いにくすぎる!