QNA > I > In Unity 3D Come Faccio A Decidere Quale Variabile Mantenere Come Pubblica, Protetta O Interna?

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.

Di Noam Buechele

Qual è la migliore soluzione di knowledge base interna per i team? :: Dovrei usare Unity 5 o Unreal Engine 4 come principiante?
Link utili