Maison >développement back-end >C++ >Comment puis-je transmettre efficacement les données entre les scènes de l'unité?

Comment puis-je transmettre efficacement les données entre les scènes de l'unité?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-02-01 09:06:10615parcourir

How Can I Effectively Pass Data Between Scenes in Unity?

La méthode efficace de transmission des données entre la scène unité

Lors de la commutation de scènes dans l'unité, les données doivent souvent transmettre des données entre les scènes. Il existe de nombreuses façons d'y parvenir et la méthode spécifique dépend du type de données à passer.

Variables statiques

Si les données sont le type de données de base (int, bool, string, etc.), il n'est pas hérité de monobehaviour et n'est pas un jeu de jeu, vous pouvez le marquer comme une variable statique. Les variables statiques conservent leur valeur lors du changement de scènes.

DontDestroyonload

Les objets hérités de Monobehaviour ou GameObject peuvent être conservés à l'aide de la fonction DontDestRoyOnload. Cela empêche GameObject d'être détruit lorsque la scène est désinstallée. En ajoutant un script contenant cette fonction à l'objet, ses variables seront maintenues accessibles dans la scène suivante. PlayerPrefs

PlayerPrefs est l'API de l'unité, permettant à une petite quantité de données de stocker une petite quantité de données, telles que les paires de valeurs de clé. Il peut être utilisé pour stocker des données de base, telles que des scores ou des paramètres.

Fichier Io Serialization

Pour une grande quantité de données ou d'objets complexes, vous pouvez utiliser des formats de fichiers sérialisés tels que JSON ou binaire. Vous pouvez créer une classe personnalisée pour représenter les données du jeu, puis utiliser l'API C # File (telles que file.writeallbytes et file.readallbytes) pour la sérialiser dans le fichier.

Case: Scores de transfert

Dans l'exemple de code, PlayerPrefs.SetInt et PlayerPrefs.getInt sont utilisés pour transmettre la valeur de score à la scène suivante. Cependant, une fois le score stocké, il n'y a pas de commutation de la scène, donc la scène chargée ne peut pas accéder à la valeur mise à jour. Le code doit être modifié comme suit:

Scène 1:

Scène 2:

Cette modification garantit l'utilisation de PlayerPrefs pour enregistrer le score actuel, et le nouveau scénario utilise les scores enregistrés pour initialiser, puis réinitialiser PlayerPrefs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn