Атрибут [field: SerializeField]
Периодически встречаю людей, которые не знают эту фичу, так что поделюсь ею невзначай
Безопасность - дело важной, и разбрасываться публичным доступом для полей, которым публичными быть не следует - это грех! Почему? Потому что в таких случаях велик риск соблазн менять эти переменные извне класса, а это вредно, так не надо, фу-фу-фу. Карается болью в будущем, когда эти поля будут меняться из нескольких мест подряд и не разберешься, кто прав, а кто виноват
Но часто такие поля должны быть доступны для чтения - например, в конфигах в ScriptableObject. Так вот, часто такие поля обрабатывают через пару:
Защита имеется. Но с относительно недавних версий можно сократить эту запись сразу до публичного свойства с приватным сеттером и для отображения в редакторе. Просто используй аттрибут:
Коротко, лаконично, беозопасно!
#полезное
Периодически встречаю людей, которые не знают эту фичу, так что поделюсь ею невзначай
Безопасность - дело важной, и разбрасываться публичным доступом для полей, которым публичными быть не следует - это грех! Почему? Потому что в таких случаях велик риск соблазн менять эти переменные извне класса, а это вредно, так не надо, фу-фу-фу. Карается болью в будущем, когда эти поля будут меняться из нескольких мест подряд и не разберешься, кто прав, а кто виноват
Но часто такие поля должны быть доступны для чтения - например, в конфигах в ScriptableObject. Так вот, часто такие поля обрабатывают через пару:
[SerializeField] private MyClass _property;
public MyClass Property => _property;
Защита имеется. Но с относительно недавних версий можно сократить эту запись сразу до публичного свойства с приватным сеттером и для отображения в редакторе. Просто используй аттрибут:
[field: SerializeField] public MyClass Property { get; private set; }
Коротко, лаконично, беозопасно!
#полезное
tg-me.com/gamedevlavka/976
Create:
Last Update:
Last Update:
Атрибут [field: SerializeField]
Периодически встречаю людей, которые не знают эту фичу, так что поделюсь ею невзначай
Безопасность - дело важной, и разбрасываться публичным доступом для полей, которым публичными быть не следует - это грех! Почему? Потому что в таких случаях велик риск соблазн менять эти переменные извне класса, а это вредно, так не надо, фу-фу-фу. Карается болью в будущем, когда эти поля будут меняться из нескольких мест подряд и не разберешься, кто прав, а кто виноват
Но часто такие поля должны быть доступны для чтения - например, в конфигах в ScriptableObject. Так вот, часто такие поля обрабатывают через пару:
Защита имеется. Но с относительно недавних версий можно сократить эту запись сразу до публичного свойства с приватным сеттером и для отображения в редакторе. Просто используй аттрибут:
Коротко, лаконично, беозопасно!
#полезное
Периодически встречаю людей, которые не знают эту фичу, так что поделюсь ею невзначай
Безопасность - дело важной, и разбрасываться публичным доступом для полей, которым публичными быть не следует - это грех! Почему? Потому что в таких случаях велик риск соблазн менять эти переменные извне класса, а это вредно, так не надо, фу-фу-фу. Карается болью в будущем, когда эти поля будут меняться из нескольких мест подряд и не разберешься, кто прав, а кто виноват
Но часто такие поля должны быть доступны для чтения - например, в конфигах в ScriptableObject. Так вот, часто такие поля обрабатывают через пару:
[SerializeField] private MyClass _property;
public MyClass Property => _property;
Защита имеется. Но с относительно недавних версий можно сократить эту запись сразу до публичного свойства с приватным сеттером и для отображения в редакторе. Просто используй аттрибут:
[field: SerializeField] public MyClass Property { get; private set; }
Коротко, лаконично, беозопасно!
#полезное
BY Лавка Разработчика


Share with your friend now:
tg-me.com/gamedevlavka/976