うにてぃブログ

主にUnityとC#に関する記事を書いていきます

EditorWindow

【Unity】EditorWindow をモーダルとして表示する際の問題

EditorWindow クラスに以下のメソッドがあったため、これを利用すればモーダルウィンドウとして表示できると思い利用してみたところ、TreeView が想定と異なる挙動をしたためその解決方法を記述します /// <summary> /// <para>Show the EditorWindow as a floating modal w</para></summary>…

【Unity】EditorWindow を UnityEditor の中心に持ってくる処理

EditorWindow を取得して CenterOnMainWin を呼び出せば中心に持ってこられる var window = GetWindow<SampleEdiorWindow>(); window.CenterOnMainWin(); public static class EditorWindowExtensions { public static void CenterOnMainWin(this EditorWindow self) { var main</sampleediorwindow>…

【Unity】EditorWindow で GUIStyle を使う際の注意

EditorWindow で GUIStyle を利用する際に、フィールドの初期値を入れた状態にすると Unable to use a named GUIStyle without a current skin. Most likely you need to move your GUIStyle initialization code to OnGUI とエラーが表示されます これは名…

【Unity】Missing Script がある Prefab を探し出して、削除をしてくれるツール公開

「Search Missing Script」を押すと全 Prefab から Missing Script になっている コンポーネントを探し一覧で表示してくれる Prefab の数が多いと時間はかかってしまうが、プログレスバーを表示させているので凡その時間はわかるようにしました 検索後見つか…

【Unity】EditorWindow の MenuItem を追加する

IHasCustomMenu を interface に追加してやることで Menu に要素を追加できます using UnityEditor; public class SampleEditorWindow : EditorWindow, IHasCustomMenu { private bool _isOn; void IHasCustomMenu.AddItemsToMenu(GenericMenu menu) { menu.…

【Unity】ScriptableObject の InspectorGUI を EditorWindow で利用する

Editor クラスの OnInspectorGUI を EditorWindow OnGUI を呼び出すことで Inspector の UI を表示することができます そのためには ScriptableObject の Editor を取得する必要があり それは下記メソッドで取得できます public static UnityEditor.Editor C…

【Unity】UnityEditor で Unityデフォルトの EditorWindow を取得する

EditorWindow を取得する方法として EditorWindow.GetWindow があるが これはすでに EditorWindow を開いていた場合でも新しく EditorWindowを作成してしまう すでに開いている EditorWindow を確認する方法として以下がある var findSceneView = Resources.…

【Unity】EditorWindow でタブを利用する

タブを表示するのに利用できるクラスは GUILayout.toolbar です 2019.1で追加された EditorGUILayout.EditorToolbar も利用できると思いましたが全然用途が違いました GUILayout.toolbar public static int Toolbar (int selected, string texts, params GUI…

【Unity】EditorWindow に Unity デフォルト Window のようなヘッダーを追加する

例えば Unity の Console には下図のようにヘッダー領域があり、そこにボタンやトグルなどを表示している 今回はその表示方法について記述する ※内部的にはツールバー (toolbar) と呼ばれている Header ヘッダーを描画するのは至極簡単で EditorGUILayout.Ho…

【Unity】Console Window で利用されているような Splitter を作る

Unity の Console Window では 一覧と詳細の間にあるバーを操作することでサイズを変更できるが、 機能を利用することができない コード 1から作るのは面倒だったため、Unity 内部のコードを参考に作成 VerticalSplitter クラスは載せて無いが、HorizontalSp…

【Unity】SerializedProperty を用いたクラス描画手法 ~2~

だいぶ複雑になるが EditorGUILayout.PropertyField の includeChildren: true を利用せずに すべての SerializedProperty を取得し描画していくこともできる。 NextVisible を利用するのは変わらないが、SerializedPropertyType.Generic の場合は中身を更に…

【Unity】EditorWindowで使えるScope一覧

Begin / End で表記するGUI系クラスのヘルパークラスである Scopeのメモ 基本的にはGUI.Scopeを継承しており、自身でScopeクラスを追加することもできる。 デフォルトで入っているものは以下であり、使い方と簡単に機能説明を追記する また最後に自作のScope…