Ссылки в Inspector
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 29 из 67.
Поле может содержать другой объект. Задай ему тип, например Transform или GameObject, и в Inspector появится пустой слот, который можно заполнить, перетащив в него объект из Hierarchy. Этот скрипт камеры следует за объектом, перетащенным в поле player, оставаясь на 3 единицы выше и на 6 единиц позади него:
public Transform player;
void Update()
{
transform.position = player.position + new Vector3(0, 3, -6);
}У пустого слота отображается None, и первая строка, которая его использует, каждый кадр вызывает ошибку: UnassignedReferenceException: The variable player of CameraFollow has not been assigned. В следующей строке сообщения говорится, что делать: You probably need to assign the player variable of the CameraFollow script in the inspector. В сообщении указаны поле и скрипт, поэтому ты знаешь, какой слот нужно заполнить.
Некоторые скрипты должны работать и с пустым слотом. Unity позволяет сравнивать пустой слот с null, поэтому такой скрипт проверяет его перед использованием. Если обернуть строку в Update() в условие if (player != null), камера без игрока останется на месте, а не вызовет ошибку.
Задание
СреднеКаждый охранник идет к своему посту. В сцене в Inspector объекта Guard1 в поле с именем post указан объект Post1. Пост Guard2 еще не создан, поэтому его слот post пуст.
- Добавь в скрипт Guard поле типа
Transformс именемpost. - Охранник идет к позиции своего поста со скоростью
speedединиц в секунду и останавливается у него, даже если пост позже переместят. - Охранник с пустым слотом поста остается на месте без ошибки.
Нажми Play, выбери каждого охранника в Hierarchy, чтобы увидеть его слот Post, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class Guard : MonoBehaviour
{
// post: Transform, к которому идёт этот охранник; задаётся в Inspector
public float speed = 2f;
void Update()
{
// Идти к посту со скоростью speed. Охранник с пустым полем post остаётся на месте.
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света