Digamos que tengo una variable llamada buttonde tipo Buttonque es, por supuesto System.Serializable.
Quiero que esa variable se pueda asignar a través del inspector, así que lo hago public:
public class SomeScript : MonoBehaviour{
public Button button;
}
Lo que me da eso:
Ahora, quiero mantener el código limpio y seguro (organizado) y hay una razón real por la que necesito preservar la encapsulación.
Sé que hay varias formas de recuperar componentes en tiempo de ejecución como transform.Find("Some/Genius/TypeUnsafe/Path")o GameObject.Find("3 seconds scene iteration").GetComponent(...).quiero evitar eso.
¿Cómo mezclo una variable private accesscon la que está public accessen el inspector?
UI/ API MVC/ MVVMpatrón para una gran aplicación (un cliente de juego en realidad) y tuve que separar UIel API. Necesitaba asignar valores a través de la causa del inspector simplemente: no hay otra manera. Find()los métodos no son seguros para el tipo y es más fácil armar las cosas arrastrando y soltando Es muy, muy difícil construir un marco clásico de OOP Unityy hay que buscar cosas extrañas como esta.

privateen realidad no tiene la intención de evitar que un tercero obtenga acceso a un campo, está destinado a proporcionar una manera de decir "no mires detrás de la cortina a lo que realmente estoy haciendo", es decir, es principalmente una forma de evitar que tengas acceso a él.