Скажімо, у мене є змінна назва button
типу, Button
яка, звичайно System.Serializable
.
Я хочу, щоб цю змінну можна було призначити через інспектор, тому я це роблю public
:
public class SomeScript : MonoBehaviour{
public Button button;
}
Що дає мені це:
Тепер я хочу тримати код чистим та захищеним (організованим) і є реальна причина, чому мені потрібно зберегти інкапсуляцію.
Я знаю, що існує кілька способів пошуку компонентів під час виконання, transform.Find("Some/Genius/TypeUnsafe/Path")
або GameObject.Find("3 seconds scene iteration").GetComponent(...).
я хочу цього уникнути.
Як я змішую змінну private access
з public access
інспектором?
UI
/ API
MVC
/ MVVM
шаблон для величезного додатку (ігровий клієнт насправді), і мені довелося відокремлювати його UI
від API
. Мені потрібно було призначити значення через інспектора, тому що іншого способу немає. Find()
методи небезпечні, і їх простіше складати, перетягуючи та опускаючи. Створити класичну рамку OOP дуже важко, Unity
і вам потрібно шукати подібні хакі.
private
насправді не має на меті перешкодити третій стороні отримати доступ до поля, це має на меті запропонувати спосіб сказати "не дивись за завісу на те, що я насправді роблю" - тобто це здебільшого спосіб не дозволяють вам отримати доступ до нього.