ホームページ >バックエンド開発 >C++ >Unityのシーン間でデータを効果的に渡すにはどうすればよいですか?

Unityのシーン間でデータを効果的に渡すにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-02-01 09:06:10666ブラウズ

How Can I Effectively Pass Data Between Scenes in Unity?

統一シーン間の効率的なデータ送信方法

シーンをUnityで切り替える場合、データは多くの場合、シーン間でデータを渡す必要があります。これを達成するには多くの方法があり、特定の方法は渡されるデータ型に依存します。

静的変数

データが基本的なデータ型(int、bool、stringなど)である場合、それはmonobehaviourから継承されず、gamebjectではない場合、静的変数としてマークすることができます。静的変数は、シーンを切り替えるときに値を保持します。

dontdestroyonload

MonobehaviourまたはGameObjectから継承されたオブジェクトは、dontdestroyonload関数を使用して保持できます。これにより、シーンがアンインストールされているときにGameObjectが破壊されるのを防ぎます。この関数をオブジェクトに含むスクリプトを追加することにより、その変数は次のシーンでアクセスできます。

playerprefs

PlayerPrefsはUnityのAPIであり、少量のデータがキー値のペアなどの少量のデータを保存できるようにします。スコアや設定などの基本的なデータを保存するために使用できます。

ファイルioシリアル化

大量のデータまたは複雑なオブジェクトの場合、JSONやバイナリなどのシリアル化されたファイル形式を使用できます。ゲームデータを表すカスタムクラスを作成し、C#ファイルAPI(file.writeallbytesやfile.readallbytesなど)を使用してファイルにシリアル化できます。

ケース:スコアを転送

サンプルコードでは、playerprefs.setintおよびplayerprefs.getintを使用して、スコア値を次のシーンに渡します。ただし、スコアが保存された後、シーンの切り替えはないため、ロードされたシーンは更新された値にアクセスできません。コードは次のように変更する必要があります

シーン1:

シーン2:

この変更により、プレイヤープリーフの使用が現在のスコアを保存し、新しいシナリオは保存されたスコアを使用して初期化を行い、その後プレイヤープリーフをリセットします。

以上がUnityのシーン間でデータを効果的に渡すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。