はじめに
Odin Inspector を Unity プロジェクトに導入することで
interface を Inspector でアタッチできるようになります
概要
public interface ICharacter { void Log(); }
例えば ICharacter インターフェイスを定義して、
using UnityEngine; public class Player : MonoBehaviour, ICharacter { public void Log() => Debug.Log( "Player" ); }
using UnityEngine; public class Enemy : MonoBehaviour, ICharacter { public void Log() => Debug.Log( "Enemy" ); }
ICharacter を実装する Player コンポーネントと Enemy コンポーネントを用意して、
これらを Inspector でアタッチできるようにしたい場合、
using Sirenix.OdinInspector; public class Example : SerializedMonoBehaviour { public ICharacter m_character; private void Awake() => m_character.Log(); }
MonoBehaviour ではなく SerializedMonoBehaviour を継承したコンポーネントを作成して
public や SerializeField で ICharacter の変数を用意すると
Player コンポーネントや Enemy コンポーネントを Inspector でアタッチできるようになります
このように Odin Inspector を Unity プロジェクトに導入することで
interface を Inspector でアタッチできるようになります