2

私は問題があります...

私のゲームには、オープニング シーン、プレイヤーを選択するシーン、実際のゲーム プレイ シーン、ゲーム オーバー シーンの 4 つのシーンがあります。

実際のプレイ シーンを追加でロードすると問題が発生します

Application.LoadLevel("Let's play the game!") 

これが私がこのシーンを去る方法です:

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle))
{
   Application.Quit();
   Application.LoadLevel("Opening Screen");
}

目的のレベルを 2 回目にロードすると、カメラは最初のプレイヤーを追跡するはずです。これは起こっていません。その問題を解決する「再起動」オプションを提供しますが、そもそもこのイベントが発生することを望んでいません。

より深刻な問題は、動的にロードされたゲームオブジェクトです。「'GameObject' は破棄されましたが、まだアクセスしようとしています。」というメッセージが表示されます。以前に「Destroy」と呼んだ場所がどこにもないため、これがどこから来ているのかわかりません。さらに、動的に作成されたオブジェクトは、Unity 内でアプリを実行しているときに階層に表示されます。

私の問題の根本はカメラの故障にあると思いますが、それを修正する方法がわかりません。

誰かお勧めはありますか?

4

1 に答える 1

3

レベルのロード間でオブジェクトをメモリに保持するには、必ずDontDestroyOnLoadを呼び出す必要があるようです。

DontDestroyOnLoad(gameObjectToPreserve);

また、例の次のコードは、「開始画面」をロードする前にアプリケーションを終了します。

if(GUI.Button (new Rect (x, y, w, h), "Quit", buttonStyle))
{
   Application.Quit();
   Application.LoadLevel("Opening Screen");
}

最初の画面に戻りたい場合は、「Application.Quit()」の行を削除してください。Application.Quit() は何もしないため、エディターのプレビュー モードではこの問題は発生しません。

于 2013-03-17T04:00:42.520 に答える