🐡
ImGUI for Unity
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