この記事でのバージョン
Unity 2019.4.3f1
はじめに
今回はUnityのエディタ拡張でウィンドウを作成する際に使うEditorWindowの
最大最小サイズや現在のサイズを取得したり設定したりする方法の紹介です!
イメージとしては以下のような感じ。
最小、最大サイズ
EditorWindowの最小最大サイズはそのままminSizeとmaxSizeで設定&取得が出来ます。
using UnityEditor; /// <summary> /// EditorWindowのサンプルクラス /// </summary> public class EditorWindowSample : EditorWindow { //================================================================================= //初期化 //================================================================================= //メニューからウィンドウを表示 [MenuItem("Tools/Open/Editor Window Sample")] public static void Open (){ EditorWindowSample.GetWindow (typeof(EditorWindowSample)); } //================================================================================= //表示するGUIの設定 //================================================================================= private void OnGUI() { //最小最大サイズの設定 minSize = EditorGUILayout.Vector2Field("最小サイズ", minSize); maxSize = EditorGUILayout.Vector2Field("最大サイズ", maxSize); } }
現在のサイズ
EditorWindowの現在のサイズはpositionのsizeで取得出来ます。
//現在のサイズ表示 EditorGUILayout.LabelField($"現在のサイズ : {position.size}");
なお、設定をする際は一旦position(Rect)を取得して
そのsizeを変更後、再度positionに入力する感じになります。
//現在のサイズ設定 var currentPosition = position; currentPosition.size = EditorGUILayout.Vector2Field("現在のサイズ", currentPosition.size); position = currentPosition; /*以下のようにするとエラー*/ //position.size = EditorGUILayout.Vector2Field("現在のサイズ", position.size);