Digamos que eu tenho uma variável chamada button
type, Button
que é obviamente System.Serializable
.
Eu quero que essa variável seja atribuível através do inspetor, então eu faço isso public
:
public class SomeScript : MonoBehaviour{
public Button button;
}
O que me dá isso:
Agora, quero manter o código limpo e seguro (organizado) e há uma verdadeira razão pela qual preciso preservar o encapsulamento.
Eu sei que existem várias maneiras de recuperar componentes em tempo de execução como transform.Find("Some/Genius/TypeUnsafe/Path")
ou GameObject.Find("3 seconds scene iteration").GetComponent(...).
eu quero evitar isso.
Como misturo uma variável private access
com ela public access
no inspetor?
UI
/ API
MVC
/ MVVM
padrão para um aplicativo enorme (um cliente de jogo na verdade) e eu tive que separar o UI
arquivo API
. Eu precisava atribuir valores através da causa do inspetor simplesmente - não há outra maneira. Find()
Os métodos são do tipo inseguro e é mais fácil juntar as coisas arrastando e soltando. É muito, muito difícil criar uma estrutura clássica de POO Unity
e você precisa procurar coisas hacky como essa.
private
não se destina realmente a impedir que terceiros obtenham acesso a um campo, serve para fornecer uma maneira de dizer "não olhe atrás da cortina para o que estou realmente fazendo" - ou seja, é principalmente uma maneira de impedi- lo de obter acesso a ele.