ドキュメントに書いてないので注意
Unity - Scripting API: RuntimeInitializeOnLoadMethodAttribute
// 通常クラス public class Hoge { [RuntimeInitializeOnLoadMethod] static void OnRuntimeInitialize() { _count = 100; } public void ShowCount() { Debug.Log(_count); // 100 } private static int _count = 0; } // ジェネリック public class Hoge<T> { [RuntimeInitializeOnLoadMethod] static void OnRuntimeInitialize() { _count = 100; // ここには一度も到達しない } public void ShowCount() { Debug.Log(_count); // 0 } private static int _count = 0; }
静的ジェネリックでも同様.とにかくジェネリックはすべて呼ばれない.
2022/4/20 追記
RuntimeInitializeOnLoadに限らず,CustomPropertyDrawersはすべてジェネリックをサポートしていない.
Addressablesのドキュメント見てて気づいた.