SerializeField
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 15 из 85.
Поле public выполняет сразу две задачи: отображается в Inspector, и любой другой скрипт может читать и изменять его. Часто вам нужно только первое. Поле private (значение по умолчанию в C#) может изменять только сам класс, поэтому никакой другой скрипт не сможет его повредить, но Unity не отображает его в Inspector.
[SerializeField] просит Unity сохранять и отображать закрытое поле. Диапазон этой турели задаётся для каждой турели отдельно в Inspector, и никакой другой скрипт не может его изменить:
[SerializeField] private float range = 5f;
void Start()
{
Debug.Log("Range: " + range);
}Так в большинстве проектов на Unity хранят настройки: поля делают закрытыми и добавляют [SerializeField]. Не забудьте и об обратной ситуации: сделайте поле закрытым и забудьте атрибут — Unity молча отбросит значение, сохранённое в сцене. Поле получит значение из кода, и никакой ошибки об этом не сообщит.
Задание
ЛегкоСкрой высоту лампы от других скриптов, но оставь её в Inspector.
- Измени поле на
[SerializeField] private float height = 1f;. - Оставь
Start()без изменений: в Inspector установи дляheightзначение 4.
Нажми «Играть»: лампа по-прежнему висит на высоте 4. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class LampHeight : MonoBehaviour
{
public float height = 1f;
void Start()
{
transform.position = new Vector3(0, height, 0);
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель света3Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт6Трансформации и иерархия
Родители и детиПоднять флагМасштабСмотреть на объектыДвигаться к точкеПовторение: Луна на орбитеПотренируйтесь самостоятельно: Песочница Unity