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