Diciamo che ho una variabile chiamata buttondi tipo Buttonche è ovviamente System.Serializable.
Voglio che la variabile sia assegnabile tramite l'ispettore, quindi la faccio public:
public class SomeScript : MonoBehaviour{
public Button button;
}
Il che mi dà questo:
Ora, voglio mantenere il codice pulito e sicuro (organizzato) e c'è un vero motivo per cui devo conservare l'incapsulamento.
So che ci sono diversi modi per recuperare componenti in fase di esecuzione come transform.Find("Some/Genius/TypeUnsafe/Path")o GameObject.Find("3 seconds scene iteration").GetComponent(...).voglio evitarlo.
Come mescolo una variabile private accesscon la sua public accessin Inspector?
UI/ API MVC/ MVVMpattern per un'applicazione enorme (un client di gioco in realtà) e ho dovuto separare UIil file API. Avevo semplicemente bisogno di assegnare valori attraverso la causa dell'ispettore - non c'è altro modo. Find()i metodi non sono sicuri ed è più facile mettere insieme le cose trascinandole. È davvero molto difficile costruire un classico framework OOP con Unitye devi cercare cose bizzarre come questa.

privatenon è realmente destinato a impedire a terzi di accedere a un campo, ha lo scopo di fornire un modo per dire "non guardare dietro il sipario ciò che sto davvero facendo", ovvero è principalmente un modo per impedirti di accedervi.