うにてぃブログ

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

Inspector

【Unity】Inspectorで簡単にカスタムメニュー項目を追加する方法

UnityのInspector上で特定のフィールド名を右クリックした際に表示されるメニューに、カスタムな動作や処理を追加したいことはよくあります。 そんなときに便利なのが、ContextMenuItem属性です。この属性を使うと、簡単にカスタムなメニュー項目を追加でき…

【Unity】Inspector 上で Enum 名を変更する

Unity 2019.2 から追加された InspectorName を利用することで Inspector 上で表示する Enum 名を変更することができる public enum Position { [InspectorName("右")] Right, [InspectorName("左")] Left, [InspectorName("真ん中")] Center }

【Unity】RectTransform の値を Inspector から変更できなくする

Content Size Fitter や LayoutGroup などを使っていると、Inspector の値を変更できなくなる これを実現するためには、DrivenRectTransformTracker を利用する DrivenRectTransformTracker は 登録した RectTransform の値を Inspector で変更できなくし ス…

【Unity】デフォルト Inspector 拡張 の CanEditMultipleObjects 対応

過去に何度か デフォルト Insepector 拡張を行って来ましたが CanEditMultipleObjects を用いて 複数選択に対応すると不具合が生じていましたが、CreateEditor時に targets を指定することで解決できました hacchi-man.hatenablog.com using UnityEditor; us…

【Unity】【CustomPropertyDrawer】Inspector の Color フィールドを拡張する

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…

【Unity】【CustomPropertyDrawer】Inspector に Preview を表示する

PropertyAttribute を作成して Inspector で アセットの Preview を表示できるように拡張する Editor.DrawPreview を呼び出せば Preview が表示できるようになります しかしながら、高さに関しては適当にしてるので利用する際は適切に処理を変えてください u…

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

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

【Unity】続 Unity デフォルト型の Inspector拡張 ~Transform~

【Unity】Unity デフォルト型の Inspector 拡張 - うにてぃブログ 上記記事で CanEditMultipleObjects を設定時に複数の要素の更新ができない問題があったため、いっそ TransformInspector の実装部分をまるっと実装してしまうことにする 実装 Position と S…

【Unity】DefaultAsset の Inspector拡張

UnityVersion 2018.4.14f1 DefaultAsset の Inspector 作成 [CustomEditor(typeof(DefaultAsset))] を定義することで DefaultAsset のInspector拡張を行える Unity2017くらいだと Scene ファイルも DefaultAsset 扱いだった記憶があるが、現在では SceneAsse…

【Unity】Editor の OnInspectorGUI の呼び出しでハマったこと

EditorWindow の拡張を行っている際に ScriptableObject の Editor を取得し、 OnInspectorGUIを呼び出した際に CustomPropertyDrawerと Foldout を利用した際にUIがおかしくなりました 本来であればこう表示されます 原因調査 公式の Editor.cs を読んでい…

【Unity】Unity デフォルト型の Inspector 拡張

UnityのInspector拡張を行う際にはCustomEditorを利用するが Unityのデフォルト型 (Transform や RectTransform等) の機能を残しつつ拡張する場合は 同じ処理を書く必要が出てくるそのため、以下のようなabstractを作成するといくらか拡張がマシになる using…

【Unity】Inspector 上のコンポーネント の MenuItem を拡張

画像のようなInspectorのMenuItemの拡張方法を覚えてなかったのでメモがてら記事を書きます。 コンポーネントを指定しての記述 Unityの定義コンポーネントやContextをまとめたい場合などの場合の記述 [MenuItem("CONTEXT/{Component}/{MenuName}")] private …