2016-06-21 19 views
-2

シングルトンとして実装されたSceneManagerのシンプルなシーンを作成しました。再起動後にプレーヤーを移動できません

このシーンのみを使用する場合、完全に機能します。

次に、再起動ボタンを追加して問題を開始しました。

最初に私はいくつか持っていたNullReferenceException問題:私は原因を見つけました、問題はクリアされていないシングルトンインスタンスのいくつかの配列に起因しています。スクリプトはx要素を持つ配列を見つけましたが、すべてがnull参照でした。そこで、配列が空であるかどうかを調べるために、Start()関数にいくつかのコードを追加しました。それが配列をクリアしていない場合(開始前に配列が空でなければならない場合、それはヌル参照の配列です)。

すべてのNullReferenceExceptionの問題(アプリケーションがクラッシュした原因)を解決した後でも、アプリケーションを再起動後に実行することができません。

新しい問題は、そのGameObjectCapsuleColliderRigidBodyRigidBodyFPSControllerGameObjectとしてシーンに定義されているプレイヤーは、再起動後に動かないことです。私は、再起動後に再作成されないかもしれない、添付されたスクリプトの問題だと思います。

+1

ここで、ヌルポインタを取得していますか?私はちょうどそのコードをテストし、うまく動作します....あなたの問題についての詳細を教えてください? – Cabrra

+0

@カブラコードは?私は彼の投稿 – Minzkraut

+0

の投稿を編集することはできません。元の投稿を確認するには、[編集済み]リンクをクリックしてください – Cabrra

答えて

1

は、あなたが持っているrestart_function /コードにこれを追加

Application.LoadLevel("your_scene"); 

を試してみてください。 これは、レベル/シーンをロードされたオリジナルにリセットする必要があります。

0

ゲームオブジェクトで最初にarrayを初期化して、restartの後に最初に定義された配列の参照が固定されているため、現在破棄されている古いオブジェクトとそれを参照しようとしているスクリプトを指していると思います。 配列nullを作成して値を代入して、オブジェクトを再初期化します。 またはapplication.load("scene_name")

関連する問題