unityシーン間のデータ送信:方法と考慮事項
静的変数を使用
例:
dontdestroyonload
<code>public static int score;</code>を使用します
例:
ローカルデータストレージ
<code>void Awake() { DontDestroyOnLoad(gameObject); }</code>PlayerPrefsとファイルベースのストレージ(XML、JSON、バイナリ)は、シーンの境界外に永続的なデータのオプションを提供します。
少量のデータ(たとえば、高いスコア、設定)に適しています。
例: ファイルベースのストレージ:
大量のデータまたは複雑なデータ構造に適しています。例:カスタムデータクラスPlayerData:
<code>void OnDisable() { PlayerPrefs.SetInt("playerScore", playerScore); }</code>を使用します
提案
シーンで切り替える必要のない単純なデータの場合、静的変数を使用します。gameobjectまたは永続的なエンティティを表すコンポーネントの場合、dontdestroyonloadを使用します。
<code>void SaveData() { using (BinaryWriter writer = new BinaryWriter(File.OpenWrite("playerData.bin"))) { writer.Write(playerData.score); // ... 保存其他数据 } }</code>
以上がUnityのシーン間でデータを最適に渡す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。