Transmission de données entre la scène d'unité: méthodes et considérations
Unity fournit plusieurs méthodes pour transmettre des données entre la commutation de scène. La méthode à choisir dépend du type de données et de son utilisation attendue.
Utiliser des variables statiques
Si les données sont le type de base (int, string, etc.) ou non hérité du type personnalisé de monobehaviour, l'énoncé en tant que statique peut garantir qu'il existe entre les scènes.
Exemple:
Utilisez DontDestROYOnload
<code>public static int score;</code>
Copier après la connexion
Pour GameObject ou les composants hérités de Monobehaviour, l'utilisation de DontDestroyonload peut les empêcher d'être détruites lors de la commutation de scène.
Exemple:
Stockage de données local
<code>void Awake()
{
DontDestroyOnLoad(gameObject);
}</code>
Copier après la connexion
PlayerPrefs et stockage basé sur des fichiers (XML, JSON, binaire) offrent des options de données persistantes en dehors de la limite de la scène.
PlayerPrefs: Il convient à une petite quantité de données (par exemple, des scores élevés, des paramètres).
Exemple:
Stockage basé sur le fichier:
Il convient à une grande quantité de données ou de structures de données complexes.
Exemple: utilisez la classe de données personnalisée PlayerData: <code>void OnDisable()
{
PlayerPrefs.SetInt("playerScore", playerScore);
}</code>
Copier après la connexion
suggestion
Pour les données simples qui n'ont pas besoin d'être commutées dans la scène, utilisez des variables statiques.
Pour GameObject ou des composants qui représentent l'entité durable, utilisez DontDestRoyOnload. <code>void SaveData()
{
using (BinaryWriter writer = new BinaryWriter(File.OpenWrite("playerData.bin")))
{
writer.Write(playerData.score);
// ... 保存其他数据
}
}</code>
Copier après la connexion
Pour une petite quantité de stockage local, utilisez PlayerPrefs.
Pour les données importantes ou compliquées qui doivent exister après le redémarrage du jeu, utilisez un stockage basé sur le fichier. -
- Considérez les compenses et les limitations de chaque méthode pour sélectionner la solution la plus appropriée pour vos besoins spécifiques de partage de données.
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!