Alexeee
@Alexeee
Разработчик игр

Как нужно ограничивать доступ к переменным?

Очень беспокоит вопрос об ограничении доступа к переменным, как правильнее делать?
Сейчас делаю так: все переменные приватные, которые нужно отобразить в инспекторе пишу над ними [SeriasableField], если эту переменную как-то использует другой скрипт, то пишу публичный метод Get или Set. Стоит ли так делать или же просто объявлять такие переменные публичными?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Это больше вопрос вкуса, я видел оба варианта, сам тоже использую SerializeField, но чаще склоняюсь к пропертям, а не методам, но, опять-таки, всё зависит от проекта. Ещё видел часто подход вида:
[SerializeField]
private int _field;
public int field { get { return _field; } set { _field = value; } }

Если говорить про абстрактный код в вакууме, то лучше данные наружу отдавать вообще через интерфейсы, но это не всегда целесообразно, особенно в контексте юнити. А так вообще да, с любым публичным полем есть риск, что его снаружи кто-то дёрнет и что-то заломает, поэтому лучше видимость переменных ограничивать по максимуму.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы