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

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

DDD
Libérer: 2025-02-01 09:26:11
original
693 Les gens l'ont consulté

How to Efficiently Pass Data Between Scenes in Unity?

passer des données entre les scènes de l'unité

Problème: passer une valeur de score d'une scène à une autre en utilisant les playerprefs dans l'unité.

Solution:

1. Variables statiques

Cette méthode convient aux types de données primitifs (par exemple, int, float) ou à des classes qui n'héritent pas de monobehaviour. Exemple:

public static int score;

// In Scene 1
score++;

// In Scene 2
Debug.Log(score); // Displays the updated score
Copier après la connexion

2. DontDestROYOnload

Pour GameObjects ou Composants, utilisez DontDestRoyOnload () dans la fonction Awake () pour empêcher les détruire lorsque la scène change.

void Awake()
{
    GameObject.DontDestroyOnLoad(gameObject);
}
Copier après la connexion

3. PlayerPrefs

PlayerPrefs fournit un stockage persistant pour des types de données simples.

// In Scene 1
PlayerPrefs.SetInt("score", 50);

// In Scene 2
int score = PlayerPrefs.GetInt("score");
Copier après la connexion

4. Sérialisation

Pour les structures de données complexes, utilisez la sérialisation en JSON ou XML. Ensuite, enregistrez les données dans un fichier en utilisant FileIO et chargez-les dans la scène suivante.

[Serializable]
public class PlayerData
{
    public int score;
}

// In Scene 1
PlayerData data = new PlayerData();
data.score = 100;
File.WriteAllText("playerdata.json", JsonUtility.ToJson(data));

// In Scene 2
PlayerData data = JsonUtility.FromJson<PlayerData>(File.ReadAllText("playerdata.json"));
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal