💭

Unity ImGUI 高解像度でも文字を読めるようにする

2024/03/07に公開

GUI.matrix でスケール

using System.Collections;
using UnityEngine;
public class GUITest : MonoBehaviour
{
    void OnGUI()
    {
        //スケールを確認
        float scale = (Screen.dpi / 96f)* 0.8f;;

        //スケール可変実行( GUI.matrix で可変)
        GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(scale, scale, 1f));

        //検証用パーツ群
        GUILayout.Label("GUI.matrix:\n" + GUI.matrix);
        GUILayout.Label("scale / Screen.dpi -> " + scale + " / " + Screen.dpi);
        GUILayout.Label("width height -> " + Screen.width + " , " + Screen.height);

        GUILayout.Box("OUTSIDE Menu");
        GUILayout.Button("OUTSIDE Button");
        GUILayout.Box("INSIDE Menu");
        GUILayout.Button("INSIDE Button");
    }
}

GUI.matrix 有無での比較

GUI.matrix あり(可変している)

GUI.matrix なし(文字小さいまま)

Discussion