前往
大廳
主題

画面遷移とプレイヤーの資料管理

當我玩家都王八蛋? | 2023-09-09 23:38:29 | 巴幣 0 | 人氣 67

この間、私はシーンの切り替え方法を研究しています。プレイヤーがチェックポイントに触れるだけでシーンを切り替えるのは簡単ですが、Unityはシーンの切り替え時にすべてのオブジェクトを破壊し、新しいシーンだけを残します。つまり、プレイヤーは新しいシーンに移動した後、消えてしまいます。最初に「DontDestroyOnLoadScene」を使用する方法を考えました。これにより、プレイヤーオブジェクトがシーンの切り替え後も破棄されなくなります。しかし、新しい問題が発生しました。新しいシーンに切り替えた後、プレイヤーの位置が適切に初期化されません。
最初に考えた解決策は、リスポーンポイントを設定し、シーンの切り替え時にプレイヤーをそのリスポーンポイントに送ることでした。この方法は一見実行可能ですが、技術的な制約に遭遇しました。シーンの切り替えに成功しても、プレイヤーは最初に元の位置に現れ(GIFのように)、すぐにリスポーンポイントに移動されます。これにより多くの問題が発生し、最終的には別の方法を採用することにしました。
インターネットで調査を行った結果、通常、シーンの切り替え時にはプレイヤーのPrefabオブジェクトを配置し、それからプレイヤーの以前の状態データを読み込む方法が一般的であることがわかりました。DontDestroyOnLoadSceneを使用すると、一部の場合に問題が発生することがあります。たとえば、プレイヤーがレベル2でセーブした場合、次回読み込むときにはレベル1から来たプレイヤーが存在しない可能性があります。
そこで、Unityのシンプルな保存機能である「PlayerPrefs」を使用する方法を研究しました。基本的なアイデアは、プレイヤーデータを保存するためのメソッドを作成し、データ型を設定し、いつ保存するかを決め、プレイヤーのPrefabが生成される際にすぐに保存されたデータを読み込むことです。
コードの基本的な部分は次のとおりです。保存したいデータをすべて書き込むだけです。現時点ではHP、形状、サイズのデータの保存のみ行っています。
完成した効果は以下のようになります。

創作回應

更多創作