In Unity 3d come faccio a decidere quale variabile mantenere come pubblica, protetta o interna?
Personalmente, non uso nessuna variabile pubblica.
Tutte le mie variabili sono private o protette, e uso le proprietà per determinare il controllo dell'accesso. Se voglio che una variabile appaia nell'ispettore, uso l'attributo [SerializeVariable].
Non ho visto la necessità della parola chiave interna poiché tutto nel tuo progetto Unity è comunque nello stesso assembly. Suppongo che avrebbe senso se tu stessi facendo un add-on come DLL per altre persone da usare.
La maggior parte delle mie dichiarazioni di variabili assomigliano a questa.
[SerializeField]
protected SomeType _someInstance;
public SomeType someInstance
{
get { return _someInstance; }
protected set { _someInstance = value; }
}
È un po' verboso, ma non mi dispiace. Controllare strettamente l'accesso riduce i vettori per l'introduzione di bug.
Quindi, le mie linee guida sono...
Variabili sempre private o protette.
[SerializeField] attributo se deve essere in ispettore.
Proprietà per controllare i livelli di accesso specifici per get e set.
Sempre il più restrittivo possibile.
Articoli simili
- Perché Apps come TikTok possono esistere con musica protetta da copyright ma su YouTube non si può usare nessuna musica protetta da copyright?
- Se faccio un gioco con Unity craccato, posso metterlo in Google Play? Scopriranno che ho usato Unity craccato? Come?
- Come spostare file (immagini, video, audio ecc.) dalla memoria interna alla scheda SD che viene formattata come memoria interna del dispositivo
- Unity vs Unreal 2018, Unreal è ancora significativamente migliore nelle prestazioni? O Unity può ora sviluppare giochi di livello quasi AAA/PS4?