🐡

ImGUI for Unity

2024/03/06に公開

ImGui とは

主に開発中に使用する即時描画型GUI
シンプルで軽量なためデバックメニューなどの実装に向いている
実装には OnGUI を使用する。

フォントサイズの変更

初期状態では文字サイズが小さい場合がある
外観変更には GUIStyle や GUI.skin を使用する。
PublicにすればInspectorから編集可能になる。

GUIStyle headStyle = new GUIStyle();
headStyle.fontSize = 30;

//もしくは

GUI.skin.label.fontSize = 30;

実装例

testing.cs
using System.Collections;
using UnityEngine;

public class testing : MonoBehaviour
{
    void OnGUI()
    {
        //HELLO WORLD1
        GUIStyle headStyle = new GUIStyle();
        headStyle.fontSize = 30;
        GUI.Label(new Rect(Screen.width / 3, Screen.height / 2, 300, 50), "HELLO WORLD1", headStyle);

        //HELLO WORLD2
        GUI.skin.label.fontSize = 30;
        GUILayout.Label("HELLO WORLD2", GUILayout.Width(300), GUILayout.Height(50));
    }
}

自動レイアウト

GUILayout を使うことで各GUIが重ならないように調整して表示される。

GUILayoutTest.cs
using System.Collections;
using UnityEngine;
public class GUITest : MonoBehaviour
{   
    void OnGUI () {
        GUI.Box("OUTSIDE Menu");
        GUILayout.Button ("OUTSIDE Button");

        GUILayout.BeginArea (new Rect (Screen.width/2, Screen.height/2, 300, 300));
        GUI.Box("INSIDE Menu");
        GUILayout.Button ("INSIDE Button");
        GUILayout.EndArea ();
    }

}

拡張 UIMGUI

Unity標準のImGUIだとウィンドウのフロートなどが行えない。
UImGUIを使うとWindow移動が行えるようになる。

Git URLを登録する

 https://github.com/psydack/uimgui.git

Discussion