シリアライズドオブジェクト

ドキュメント:

UnityEditor.SerializedObject | Unity スクリプトリファレンス [公式]

導入

参考:

Seriazlied Object に迫る – Qiita

使い方

[CustomEditor(typeof(ExampleClass))] class ExampleClassEditor : Editor { SerializedProperty prop; void OnEnable() { prop = serializedObject.FindProperty("propOfExampleClass"); } public override void OnInspectorGUI() { serializedObject.Update(); EditorGUILayout.PropertyField(prop); serializedObject.ApplyModifiedProperties(); } }
Code language: C# (cs)

参考:

Serialized Object の勘所をまとめてみる | LIGHT11

非 public リストの各要素に名前を付ける | ミドリ黄のプログラミングメモノート

Custom editor object field getting serialized object – Unity Answers

I can’t change the value of a serialized variable in Unity’s custom inspector – Stack Overflow

FindProperty retuns null – Stack Overflow

Null Reference Exception when SerializedProperty has any accessor – Stack Overflow

全てのプロパティを表示する

参考:

Serialized Object のもつ全てのプロパティを描画する | LIGHT11

Serialized Object を使用して指定されたオブジェクトのすべてのプロパティのパス名を抽出するエディタ拡張 | コガネブログ

Editor Window で独自クラスの配列を行う | 万年素人から Hacker への道

シリアル化

フィールド
  • public フィールド、または、SerializedField 属性が付与されたフィールドがシリアライズの対象となる。
  • staticconstreadonly が指定されたフィールドはシリアライズされない。
タイプ
  • プリミティブデータ型 (intfloatdoubleboolstring など)
  • Enum
  • ビルトイン型
    • Vector2Vector3Vector4RectQuaternionMatrix4x4ColorColor32LayerMaskAnimationCurveGradientRectOffsetGUIStyle
  • Object から派生したクラスへの参照
  • Serializable 属性が付与されたカスタムクラス、または、カスタム構造体
  • 抽象クラスはシリアライズされない
  • ジェネリッククラスはシリアライズされない
  • ポリモーフィズムはサポートされない

参考:

スクリプトがシリアライズされる仕組み | ねこじゃらシティ

シリアライズされたフィールドの値はどこにあるの? | エクスプラボ

スクリプトのシリアル化 | Unity マニュアル [公式]

ビルトインのシリアル化 | Unity 2020.3 マニュアル [公式]

テキストシリアル化ファイルの形式 | Unity マニュアル [公式]

Custom Editor of List don’t show properties but a GameObject – Stack Overflow

シリアライズドプロパティ

メンバ変数

参考:

UnityEditor.SerializedProperty | Unity スクリプトリファレンス [公式]

Why `SerializedProperty.Update` is called in the beginning? – Unity Answers

SerializedProperty doesn’t update displayed value in Editor – Unity Answers

プロパティフィールド

参考:

手抜きしてインスペクター拡張 – Qiita

インスペクター拡張の基礎 | Unity でコードからGUIを作る (kumaS)

EditorGUILayout.PropertyField | Unity スクリプトリファレンス [公式]

スクリプタブルオブジェクト

こちらのページを参照

参考:

UnityEngine.ScriptableObject | Unity スクリプトリファレンス [公式]

エディタ拡張で自作クラスの Serialized Object 取得 – teratail

配列

参考:

シリアライズ化されたインスタンスを配列として扱う | ソフトライム

オブジェクト参照 (objectReferenceValue)

参考:

GameObject を SerializedProperty へ設定する – Qiita

Missing があるアセットを検索する | WonderPlanet Developers’ Blog

SerializedProperty.objectReferenceValue | Unity スクリプトリファレンス [公式]

Get a general object value from SerializedProperty? – Unity Forum

objectReferenceValue in SerializedProperty – Unity Answers

How to properly check serializedProperty.objectReferenceValue for null? – Unity Answers

SerializedProperty is null (Property Drawer) – Unity Answers

Help with SerializedProperty.ObjectReferenceValue – Unity Answers

SerializedProperty always null with Property Drawers – Stack Overflow

boxedValue

参考:

SerializedProperty.boxedValue | Unity 2022.1 スクリプトリファレンス [公式]

ジェネリッククラス (Generic)

参考:

Inspector で扱える Dictionary – Qiita

ジェネリッククラスを Inspector に表示するにはどうすればいいの? | ケットシーウェア

Unity 2020.1 で Generic な型がシリアライズ可能になりました | LIGHT11

Generic なクラスをシリアライズできた | テラシュールブログ

Unityでシリアライズ可能なコレクション | wizaman’s blog

カスタム製のシリアル化 | Unity 2020.3 マニュアル [公式]

generics serialization – Unity Forum

serializable class using generics – Unity Answers

JsonUtility

参考:

JsonUtility でオブジェクトをシリアライズしたりデシリアライズしたりする | Yucchiy’s Note

JsonUtility と EditorJsonUtility の違いをちゃんと理解する | LIGHT11

JSON 形式にシリアライズ | Unity 2020.3 マニュアル [公式]

UnityEngine.JsonUtility | Unity スクリプトリファレンス [公式]

UnityEditor.EditorJsonUtility | Unity スクリプトリファレンス [公式]

まとめ

インスペクター拡張の基礎 | Unity でコードから GUI を作る (kumaS)

Serialized Object の勘所をまとめてみる | LIGHT11

Serializable Dictionary (azixMcAze)

入手:

Serializable Dictionary | Unity Asset Store [Official]

リポジトリ:

azixMcAze/Unity-SerializableDictionary: Serializable Dictionary – GitHub

フォーラム:

Serializable Dictionary | Unity Forum

Serialized Dictionary (Prastiwar)

リポジトリ:

Prastiwar/UnitySerializedDictionary: Serialized Dictionary – GitHub

参考:

Serialized Dictionary – Inspector で編集できる Dictionary | コガネブログ

Serializable Dictionary (baba-s)

リポジトリ:

baba-s/UniSerializableDictionary: Dictionary を Inspector で設定できるようにするクラス – GitHub

Serializable Collections (neuecc)

リポジトリ:

neuecc/SerializableDictionary: Serializable Collections – Serializable Dictionary / Serializable Lookup / Serializable Tuple – GitHub

参考:

Serializable Dictionary – 高速に辞書復元するためのライブラリ | neue cc

Scriptable Dictionary

動画:

Demo

入手:

Scriptable Dictionary | Unity Asset Store [Official]

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA