[System.Serializable] ou Static
Publié : 12 Fév 2021 12:04
Bonjour à tous,
testant les "bonnes pratiques" en code, j'essaie pour le moment deux approches de stockage de variables dans des Class (pour isoler par exemple des données de joueur, ce qui me permettra plus facilement de faire par la suite un encodage binaire pour sauvegarder ces mêmes données).
Pour le moment, je passe par du [System.Serializable]
ou du Static
Bon, les deux me semblent équivalent en praticité (a priori .... ). Je peux appeler et modifier à la volée leur valeur facilement. La seule "grosse différence" est que je dois déclarer en amont ma Class utilisant la solution [System.Serializable]. Alors que je peux taper directement dans ma Class Static sans déclaration préalable.
Avez vous une préférence de votre côté ? Des arguments pour favoriser une méthode plus que l'autre ?
Merci !!!
PS : je connais également le principe du Singleton, que j'utilise par ailleurs, sur une Class plus générique de gestion de mon jeux.
testant les "bonnes pratiques" en code, j'essaie pour le moment deux approches de stockage de variables dans des Class (pour isoler par exemple des données de joueur, ce qui me permettra plus facilement de faire par la suite un encodage binaire pour sauvegarder ces mêmes données).
Pour le moment, je passe par du [System.Serializable]
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class PlayerTest // Pas Mono
{
// Vars
[HideInInspector]
public int playerInfo = 5;
}
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public static class PlayerTest2 // Pas Mono
{
// Vars
public static int playerInfo2 = 5;
}
Code : Tout sélectionner
public class Player : MonoBehaviour
{
// Déclaration de la Class utilisant [System.Serializable]
public PlayerTest playerTest;
void Start()
{
// TEST avec [System.Serializable]
Debug.Log("PlayerTest : " + playerTest.playerInfo); // [System.Serializable]
playerTest.playerInfo = playerTest.playerInfo + 1;
Debug.Log("PlayerTest Plus : " + playerTest.playerInfo); // [System.Serializable]
// TEST avec Static
Debug.Log("PlayerTest2 : "+ PlayerTest2.playerInfo2); // Static
PlayerTest2.playerInfo2 = PlayerTest2.playerInfo2 + 1;
Debug.Log("PlayerTest2 Plus : " + PlayerTest2.playerInfo2); // Static
}
}
Merci !!!
PS : je connais également le principe du Singleton, que j'utilise par ailleurs, sur une Class plus générique de gestion de mon jeux.