Inspector
UnityのInspector上で特定のフィールド名を右クリックした際に表示されるメニューに、カスタムな動作や処理を追加したいことはよくあります。 そんなときに便利なのが、ContextMenuItem属性です。この属性を使うと、簡単にカスタムなメニュー項目を追加でき…
Unity 2019.2 から追加された InspectorName を利用することで Inspector 上で表示する Enum 名を変更することができる public enum Position { [InspectorName("右")] Right, [InspectorName("左")] Left, [InspectorName("真ん中")] Center }
Content Size Fitter や LayoutGroup などを使っていると、Inspector の値を変更できなくなる これを実現するためには、DrivenRectTransformTracker を利用する DrivenRectTransformTracker は 登録した RectTransform の値を Inspector で変更できなくし ス…
過去に何度か デフォルト Insepector 拡張を行って来ましたが CanEditMultipleObjects を用いて 複数選択に対応すると不具合が生じていましたが、CreateEditor時に targets を指定することで解決できました hacchi-man.hatenablog.com using UnityEditor; us…
using UnityEditor; using UnityEngine; [CustomPropertyDrawer(typeof(Color))] public class ColorPropertyDrawer : PropertyDrawer { private const int ColorMax = 4; private SerializedProperty[] _rgba; private Color _color = new Color(); private…
PropertyAttribute を作成して Inspector で アセットの Preview を表示できるように拡張する Editor.DrawPreview を呼び出せば Preview が表示できるようになります しかしながら、高さに関しては適当にしてるので利用する際は適切に処理を変えてください u…
Editor クラスの OnInspectorGUI を EditorWindow OnGUI を呼び出すことで Inspector の UI を表示することができます そのためには ScriptableObject の Editor を取得する必要があり それは下記メソッドで取得できます public static UnityEditor.Editor C…
【Unity】Unity デフォルト型の Inspector 拡張 - うにてぃブログ 上記記事で CanEditMultipleObjects を設定時に複数の要素の更新ができない問題があったため、いっそ TransformInspector の実装部分をまるっと実装してしまうことにする 実装 Position と S…
UnityVersion 2018.4.14f1 DefaultAsset の Inspector 作成 [CustomEditor(typeof(DefaultAsset))] を定義することで DefaultAsset のInspector拡張を行える Unity2017くらいだと Scene ファイルも DefaultAsset 扱いだった記憶があるが、現在では SceneAsse…
EditorWindow の拡張を行っている際に ScriptableObject の Editor を取得し、 OnInspectorGUIを呼び出した際に CustomPropertyDrawerと Foldout を利用した際にUIがおかしくなりました 本来であればこう表示されます 原因調査 公式の Editor.cs を読んでい…
UnityのInspector拡張を行う際にはCustomEditorを利用するが Unityのデフォルト型 (Transform や RectTransform等) の機能を残しつつ拡張する場合は 同じ処理を書く必要が出てくるそのため、以下のようなabstractを作成するといくらか拡張がマシになる using…
画像のようなInspectorのMenuItemの拡張方法を覚えてなかったのでメモがてら記事を書きます。 コンポーネントを指定しての記述 Unityの定義コンポーネントやContextをまとめたい場合などの場合の記述 [MenuItem("CONTEXT/{Component}/{MenuName}")] private …