コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【Unity】Odin Inspector and Serializer 2.0 新機能まとめ

はじめに 2018/8/9 に「Odin Inspector and Serializer」の 2.0 がリリースされたので、 2.0 から使用できるようになった新機能についてまとめました 新機能一覧 任意のクラスの static 変数やプロパティの閲覧や編集、static 関数の実行ができる「Static In…

【Unity】【Odin Inspector 2.0 新機能】任意のクラスの static 変数やプロパティの閲覧や編集、static 関数の実行ができる「Static Inspector Utility」

アセット 概要 Unity メニューの「Tools>Odin Inspector>Static Inspector」を選択して 「SelectType」を選択して 任意のクラスを選択することで そのクラスの static 変数やプロパティの値を閲覧できます 編集可能な変数やプロパティの値は編集することもで…

【Unity】【Odin Inspector 2.0 新機能】static 変数やプロパティの値を Inspector に表示できる「ShowInInspector」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [ShowInInspector] private static string m_hoge; [ShowInInspector] private static string m_fuga { get { return "ライチュウ"; } } } 「ShowIn…

【Unity】【Odin Inspector 2.0 新機能】引数のある関数を Inspector から実行できる「Button」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [Button] private void Default( float t, float b, float[] c ) { } [Button( ButtonSizes.Medium, ButtonStyle.FoldoutButton )] private int Fol…

【Unity】【Odin Inspector 2.0 新機能】クラスに属性を適用する

アセット 概要 バージョン 2.0 まで using Sirenix.OdinInspector; using UnityEngine; public class MyClass<T> { public bool isEnabled; public T foo; public T bar; } public class Example : SerializedMonoBehaviour { [Required] [LabelWidth( 70 )] [T</t>…

【Unity】【Odin Inspector 2.0 新機能】表示領域に合わせてボタンのサイズを自動調整できる「ResponsiveButtonGroup」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [ResponsiveButtonGroup( UniformLayout = true, DefaultButtonSize = ButtonSizes.Large )] public void FooFooFooFooFoo() { } [GUIColor( 0, 1, …

【Unity】【Odin Inspector 2.0 新機能】クラスに説明文を付与できる「TypeInfoBox」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; [TypeInfoBox( "ピカチュウ" )] public class Example : MonoBehaviour { public string Name; public int X; public int y; } 「TypeInfoBox」属性を使用することで クラスに説明文を付与で…

【Unity】【Odin Inspector 2.0 新機能】InlineEditor 内で描画されているかどうかで表示・非表示が変わる「ShowInInlineEditors」「HideInInlineEditors」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; [CreateAssetMenu] public class Data : ScriptableObject { [HideInInlineEditors] public string m_name; [ShowInInlineEditors] public int m_id; } using Sirenix.OdinInspector; using …

【Unity】【Odin Inspector 2.0 新機能】無効化されている GUI を有効化できる「EnableGUI」

アセット 概要 通常 using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [ShowInInspector] public string Name { get { return "ピカチュウ"; } } } EnableGUI using Sirenix.OdinInspector; using UnityEngine; pub…

【Unity】【Odin Inspector 2.0 新機能】TableList 内で描画されている時のみ非表示になる「HideInTables」

アセット 概要 using Sirenix.OdinInspector; using System; [Serializable] public class Data { public int m_id; public string m_name; public float m_height; [HideInTables] public float m_weight; } using Sirenix.OdinInspector; using UnityEngin…

【Unity】【Odin Inspector 2.0 新機能】変数、プロパティ、関数の前後にスペースを表示できる「PropertySpace」

アセット 概要 using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [Space] public int MyField; [ShowInInspector, PropertySpace( 16 )] public int MyProperty1 { get; set; } [ShowInInspector, PropertySpace( 1…

【Unity】【Odin Inspector 2.0 新機能】InlineEditor 属性の引数の追加

アセット 概要 2.x まで using Sirenix.OdinInspector; using UnityEngine; [CreateAssetMenu] [InlineEditor] public class Data : SerializedScriptableObject { public Data m_self; [InlineEditor] public PhysicsMaterial2D m_mat; [ShowInInspector] […

【Unity】【Odin Inspector 2.0 新機能】特定のクラスのパラメータに属性を付与できる「Attribute Processors」

アセット 概要 using System; [Serializable] public class Data { public int m_id; public string m_name; } using UnityEngine; public class Example : MonoBehaviour { public Data m_data; } using Sirenix.OdinInspector; using Sirenix.OdinInspecto…

【Unity】【Odin Inspector 2.0 新機能】特定のクラスにプロパティやボタンを付与できる「Property Processors」

アセット 概要 using UnityEngine; public enum JobType { SOLDIER, SORCERER, HUNTER, } public class Example : MonoBehaviour { public int m_id; } using Sirenix.OdinInspector; using Sirenix.OdinInspector.Editor; using System.Collections.Generic…

【Unity】【Odin Inspector 2.0 新機能】ValueDropdown 属性が拡張された

アセット 概要 using Sirenix.OdinInspector; using System.Collections; using System.Collections.Generic; using UnityEngine; public class Example : MonoBehaviour { [ValueDropdown( "GetAllChildObjects" )] public GameObject m_object; [ValueDrop…

【Unity】Odin Inspector で ScriptableObject をリストから作成できるエディタ拡張を実装する

はじめに 「Odin Inspector」を使用することで、 ScriptableObject をリストから作成できるエディタ拡張を実装できます 概要 例えば、Unity プロジェクトにこれらの ScriptableObject のコードが存在して using UnityEngine; public class ItemData : Script…

【Unity】「Odin Inspector」の ver 1.0.6.0 がリリースされて EditorWindow も拡張できるようになりました

はじめに 2018/1/23 に「Odin Inspector」の ver 1.0.6.0 がリリースされて、 EditorWindow も拡張できるようになりました また、ObjectField が拡張されたり、新しい Attribute が追加されたりしています EditorWindow の拡張 OdinEditorWindow や OdinMenu…

【Unity】「Odin - Inspector and Serializer」を64件の記事に分けて紹介

はじめに この記事は「Unity アセット真夏のアドベントカレンダー 2017」の8/5の記事です 昨日は ぽうひろ さんの「DoozyUIでUnityUIを時短de簡単に作っちゃおう!!」でした 明日は ゆーじ さんの「DaydreamのコントローラーをHoloLensで使う」です 概要 20…

【Unity】【Odin - Inspector and Serializer】パラメータを垂直方向のグループに分ける「VerticalGroup」属性

目次 「VerticalGroup」属性 「VerticalGroup」属性を使用すると 変数を垂直方向のグループに分けることができます using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [HorizontalGroup( "Group" )] [VerticalGroup(…

【Unity】【Odin - Inspector and Serializer】ラベルの幅を調整する「LabelWidth」属性

目次 「LabelWidth」属性 「LabelWidth」属性を使用すると ラベルの幅を調整できます using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { public int a1; [LabelWidth( 32 )] public int a2; } 使い方 下記の様に記述…

【Unity】【Odin - Inspector and Serializer】Dictionary の表示を調整する「DictionaryDrawerSettings」属性

目次 「DictionaryDrawerSettings」属性 「DictionaryDrawerSettings」属性を使用すると Dictionary の表示を調整できます using Sirenix.OdinInspector; using System.Collections.Generic; public class Example : SerializedMonoBehaviour { [DictionaryD…

【Unity】【Odin - Inspector and Serializer】クラスや構造体のパラメータを折りたたみ無しで表示する「InlineProperty」属性

目次 「InlineProperty」属性 「InlineProperty」属性を使用すると クラスや構造体のパラメータを折りたたみ無しで表示できるようになります using Sirenix.OdinInspector; using System; using UnityEngine; public class Example : MonoBehaviour { public…

【Unity】【Odin - Inspector and Serializer】プレハブではないオブジェクトの値を非表示にする「HideInNonPrefabs」属性

目次 「HideInNonPrefabs」属性 「HideInNonPrefabs」属性を使用すると プレハブではないオブジェクトの値を非表示にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sirenix.Odi…

【Unity】【Odin - Inspector and Serializer】プレハブではないオブジェクトの値を編集不可にする「DisableInNonPrefabs」属性

目次 「DisableInNonPrefabs」属性 「DisableInNonPrefabs」属性を使用すると プレハブではないオブジェクトの値を編集不可にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sir…

【Unity】【Odin - Inspector and Serializer】Project ビューのプレハブの値を編集不可にする「DisableInPrefabAssets」属性

目次 「DisableInPrefabAssets」属性 「DisableInPrefabAssets」属性を使用すると Project ビューのプレハブの値を編集不可にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sir…

【Unity】【Odin - Inspector and Serializer】Project ビューのプレハブの値を非表示にする「HideInPrefabAssets」属性

目次 「HideInPrefabAssets」属性 「HideInPrefabAssets」属性を使用すると Project ビューのプレハブの値を非表示にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sirenix.Odi…

【Unity】【Odin - Inspector and Serializer】Hierarchy ビューのプレハブの値を編集不可にする「DisableInPrefabInstances」属性

目次 「DisableInPrefabInstances」属性 「DisableInPrefabInstances」属性を使用すると Hierarchy ビューのプレハブの値を非表示にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード usi…

【Unity】【Odin - Inspector and Serializer】Hierarchy ビューのプレハブの値を非表示にする「HideInPrefabInstances」属性

目次 「HideInPrefabInstances」属性 「HideInPrefabInstances」属性を使用すると Hierarchy ビューのプレハブの値を非表示にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sir…

【Unity】【Odin - Inspector and Serializer】プレハブの値を非表示にする「HideInPrefabs」属性

目次 「HideInPrefabs」属性 「HideInPrefabs」属性を使用すると プレハブの値を非表示にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sirenix.OdinInspector; using UnityEng…

【Unity】【Odin - Inspector and Serializer】プレハブの値を編集不可にする「DisableInPrefabs」属性

目次 「DisableInPrefabs」属性 「DisableInPrefabs」属性を使用すると プレハブの値を編集不可にすることができます Project ビューのプレハブ Hierarchy ビューのプレハブ プレハブではないオブジェクト ソースコード using Sirenix.OdinInspector; using …