【Unity】インターフェースをインスペクターに表示する方法

Unity

はじめに

この記事では「Unity3D-SerializableInterface」というパッケージを使ってインターフェース型のメンバ変数をインスペクターに表示してそこに GameObject をアサインできるようにする方法をザックリと解説します。

手順

  1. 「Unity3D-SerializableInterface」の GitHub リポジトリから最新版のリリースのZIPファイルをダウンロードして解凍します。
  2. 解凍したフォルダをプロジェクトウィンドウの Assets フォルダ以下にドラッグ&ドロップしてインポートします。
  3. 以下のコードのように記述します。
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 をアサインできるようになっているかと思います。

最後に

お問い合わせ

    タイトルとURLをコピーしました