Maison >développement back-end >C++ >Comment transmettre efficacement les 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
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); }
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");
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"));
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!