GenericsなクラスをInspectorで使うworkaround

Unityでは[System.Serializable]を付けることでstructやclassをInspectorで使えるようにすることができますが、genericsを使ったclassは使えません。そのworkaroundとして、継承を使うという方法があるそうです。

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

[System.Serializable]
public class ExampleString : Example<string>
{
}

のようにして、使うときは次のようにします。

public class Example2 : MonoBehaviour
{
  [SerializeField]
  ExampleString example;
}

リンク

Serializable class using generics – Unity Answers
https://answers.unity.com/questions/214300/serializable-class-using-generics.html

コメントを残す

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