これは、これよりはるかに簡単です。それとも私は自分の無知によって盲目になっている!Unity 5.5.1 - 最後のレベルが読み込まれますか?
私がしたいのは、再生された最後の再生可能レベルの文字列名を取得する方法です。
明確にする: - "Level_100" スルー "Level_01"
をすべて再生可能なレベルは、順次名前が付与されています。
再生できないすべてのシーンには、「スタートメニュー」や「レベル完成」などの名前が付けられています。これらのシーンには、「メインメニュー」や「再生最終レベル」などのボタンが含まれています。
私はUIシステムを使用しておらず、そうしたくはありません。むしろ、私はコライダーを使ってオブジェクトを設定し、ゲームの仕組みを使って "ボタン"として機能しています。例えば、プレイヤーが "Replay Last Level"と呼ばれるボタンを撃つとき、OnCollisionEnter2Dは最後にプレイされたレベルをロードするはずです。
レベルがプレイヤーによって完了または失われるたびに、それらは「レベル完成」に持ち込まれ、いくつかのゲーム統計情報(スコア、時間など)が表示されます。 「メインメニュー」、「最後のレベルを再生する」、「続ける」の3つの選択肢があります。私は必要なもの
は、単純に、常に前にロードされた再生可能なレベルの名前を含む文字列変数である(すなわち、「Level_01」のような名前ではなく、「スタートメニュー」などと、それらを。)
それから私はそれを使用します。適切な場所でGameManagerスクリプトに入力する文字列。プレイした最後のレベルは、プレイヤーが「最後のレベルを再生」したときに読み込まれます。プレイヤーが「続行」を撃つとき、私は次のプレイ可能レベルをプレイしたい。
とてもシンプルなコンセプトです:私は "Level_02"を失ったばかりです。私は今 "LevelCompleted"にいます。私は "Replay Last Level"を撃ちます。私は再び "Level_02"に入る。代わりに、私が「続行」を撃った場合、それは次の再生可能レベルになります。このレベルでは、レベルがロックされていない場合は「Level_03」です。ロックされていない場合は、「続行」ボタンを押すと「level_02」に戻ります。
私は、そうでなければ空のゲームオブジェクトにGameManagerスクリプトを持っています。それはあらゆる場面にとどまるシングルトンです。このスクリプトには、シングルトンであるメインのパブリッククラスと、より大きい配列でデータを含む一連のものがあります。もう1つは、シリアライズ可能な「パブリッククラスGameData」です。これは、ファイルに書き込まれた変数のみを含み、ゲーム中に必要に応じてリロードされます。