コガネブログ

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

【Unity】【Odin - Inspector and Serializer】ジェネリッククラスやインターフェイス、null 許容型の変数を Inspector で設定できるようにする「SerializedMonoBehaviour」クラス

目次

「SerializedMonoBehaviour」クラス

「SerializedMonoBehaviour」を継承することで
そのクラス内で定義したインターフェイスや
ジェネリッククラス、null 許容型の変数を
Inspector で設定できるようになります

f:id:baba_s:20170721170522p:plain

using Sirenix.OdinInspector;
using System.Collections.Generic;
using UnityEngine;

public class Example : SerializedMonoBehaviour
{
    public Item<int> item;

    public Item<GameObject[]> gameObjectList;

    public Dictionary<string, ICharacter> table;

    public Vector3? position;

    public class Item<T>
    {
        public T value;
    }

    public interface ICharacter { }

    public class Pokemon : ICharacter
    {
        public int id;
        public string name;
    }

    public class Trainer : ICharacter
    {
        public string name;
    }
}