🗒️
[Unity] EditorWindow で TextField と同じ幅のボタンを配置する
目的
下図のように EditorWindow
においてウィンドウサイズを変えても EditorGUILayout.TextField()
等と同じ幅となるボタンを配置することを目的とする。
環境
Unity 2022.3.6f1
他のバージョンで動くかは未確認である。
方法
以下のように実装することで実現できる。
なお、ObjectField
, TextField
は比較用である。
public class MyWindow : EditorWindow
{
void OnGUI()
{
// ObjectField
DefaultAsset asset = null;
asset = EditorGUILayout.ObjectField("DefaultAsset", asset,
typeof(DefaultAsset), false) as DefaultAsset;
// TextField
string text = "";
text = EditorGUILayout.TextField("TextField", text);
// Button
Rect rect = EditorGUILayout.GetControlRect(true);
rect = EditorGUI.PrefixLabel(rect, new GUIContent("Label"));
if (GUI.Button(rect, "Button"))
{
// Do something
}
}
}
謝辞
私がこれをやろうとして方法が分からず困っていたところに教えてくれた anatawa さんにこの場を借りて感謝申し上げます。
Discussion