プレイヤーが失敗したときにリロードしたいシーンがあります。私はSceneManager.LoadScene("MainScene");
でこれを行うが、その後、私はこのエラーがあります:私は問題が私の事象によって引き起こされることがわかったいくつかの掘削後シーンリセット(リロード)でイベントサブスクリプションをリセットする方法
MissingReferenceException: The object of type 'AudioSource' has been destroyed but you are still trying to access it.
を。以前のシーンからの加入者がまだアクティブで、すでに破壊されているオブジェクトを探しているようです。したがって、質問は次のとおりです:
- 新しいシーンを読み込む前に、どういうわけかすべてのユーザを削除することはできますか、それとも1つずつ削除する必要がありますか?
- (私はそれを尋ねないと知っていますが...)簡単なイベントマネージャのチュートリアルや例を教えてください。イベントハンドラをラップしてサブスクリプションを管理できる静的クラスについて考えていますか?
私の質問を書いた後、私はOnDisable()の方法を試してみましたが、うまくいきました。ありがとう –
OnDisable()関数でそれを行うことは正しい方法です。毎回働くことが保証されています。必要に応じて、clear all eventメソッドを使用するか、独自のEvent Managerを作成することができます。 Unityがイベントを処理する方法をご覧ください。https://unity3d.com/learn/tutorials/modules/intermediate/scripting/events – Programmer