はじめに
この記事では「Unity3D-SerializableInterface」というパッケージを使ってインターフェース型のメンバ変数をインスペクターに表示してそこに GameObject をアサインできるようにする方法をザックリと解説します。
手順
- 「Unity3D-SerializableInterface」の GitHub リポジトリから最新版のリリースのZIPファイルをダウンロードして解凍します。
- 解凍したフォルダをプロジェクトウィンドウの Assets フォルダ以下にドラッグ&ドロップしてインポートします。
- 以下のコードのように記述します。
using UnityEngine;
using TNRD; //追加
public interface ISampleInterface
{
    public void SampleMethod();
}
public class SampleClass : MonoBehaviour
{
    // SerializableInterface でラップする
    [SerializeField]
    private SerializableInterface<ISampleInterface> sampleInterface;
    private void Start()
    {
        // Value を挟むとそのインターフェースのメソッドを呼び出せる
        sampleInterface.Value.SampleMethod();
    }
}
この状態で Unity エディタに戻ると、そのインターフェースを実装したクラスがアタッチされている GameObject をアサインできるようになっているかと思います。
 
 

