前提
・Unity
・C#
経緯
Unityの機能
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
属性を付与した関数がAwakeやStartより後に実行されます。
個人製作のゲームを作る際にいくつかのクラスを上記の属性を付与した関数内でインスタンス化し、
どのSceneからゲームをスタートしても必ず指定のクラスは作成されるといった仕組みを作り出そうとしたのですが、
この仕組み自体を思い通りに実装することはできたのですがSceneに予め配置しているスクリプトとの参照の有り無しが生じたので今回こちらのサイトにて質問しようと思いました。
###知りたいこと
Subsystemというものについて知識が無いので、これがどういったものなのかを教えていただきたいです。
発生している問題・エラーメッセージ
cs
1NullPointerException
該当のソースコード
ソースコード
試したこと
・解決方法1
Awake関数内でインスタンス化
結果:ぬるぽ解決できました。クラスの参照が代入されました。
・解決方法2
cs
1[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
属性の引数の列挙をBeforeSceneLoadに変更。
結果:Awake関数よりも早くに実行されました。結果は解決方法1と同様。
補足情報
・Unity 2021.1.16f1
・Visual Studio 16.11.1
あなたの回答
tips
プレビュー