【Unity】画面解像度に依存しないGUI.LabelやGUI.Buttonの表示

DEVELOP, Unity

AndroidやiOSの実機に転送すると、GUIボタンやラベルの表示サイズが変わってしまう場合は、「GUIUtility.ScaleAroundPivot」を使うことでGUI内の解像度を設定出来ます。

Vector2 guiScreenSize = new Vector2(1280, 720);	// 基準とする解像度
void OnGUI()
{
	// GUI用の解像度設定
	GUIUtility.ScaleAroundPivot(new Vector2(Screen.width / guiScreenSize.x, Screen.height / guiScreenSize.y), Vector2.zero);
	// ボタン
	if (GUI.Button(new Rect(50, 50, 300, 300), "BUTTON"))
	{
	}
	// GUIの解像度を元に戻す
	GUI.matrix = Matrix4x4.identity; 
}

guiScreenSize想定でGUIが表示される様になります。ただ、このサンプルコードでは画面比率が異なると縦か横に伸びてしまいます。その場合は縦か横どちらかの拡縮の比率をそれぞれに適用させると良いと思います。

スポンサーリンク

Posted by kazupon