Unity と C# を使用して Arkanoid 3D ゲームを作成しようとしています。ゲームを開始できるシンプルなメニュー (シーン 0)、実際のゲームが行われるメイン シーン (シーン 1)、プレーヤーが最初に持っていた 3 つのボールをすべて失った後に表示されるスコアボード (シーン 2) を作成しました。任意のキーを押した後、メニューに戻り、ゲームを再開できます。そして、ここから問題が始まります。
最初のボールを失った後の 2 番目のゲームで、私のゲームは狂ってしまいます。以下のような「MissingReferenceException」が大量に発生します(ただし、他のオブジェクト(GUITextなど)にリンクされているものもあります):
MissingReferenceException: The object of type 'Player' has been destroyed but
you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
Player.BallLost () (at Assets/Player/Player.cs:164)
GameEventManager.TriggerBallLost () (at Assets/Menagers/GameEventManager.cs:30)
Ball.Update () (at Assets/Ball/Ball.cs:47)
変数を割り当てていないために発生する MissingReferenceException が大量にあることに気付きました。しかし、これは「最初のプレイ」ですべてが完璧に機能するので、私にとってはちょっと違う気がします。この問題の原因は何ですか? 2 番目のゲームのゲームを起動した後、インスペクタをチェックインすると、すべての変数がオブジェクトに割り当てられました。
ゲーム コードがかなり大きくなり、10 個を超えるスクリプトに分割されているため、ゲーム コードを挿入する必要があるかどうかはわかりません。