Поиск по имени
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 42 из 67.
GameObject.Find("Player") ищет на сцене активный объект с точно таким именем и возвращает его либо null, если такого объекта нет. Это избавляет от необходимости связывать поле в Inspector, но за это приходится платить: поиск просматривает каждый объект на сцене. Поэтому вызывай его один раз, в Start(), и сохраняй результат в поле. Эта камера наблюдения находит Player при запуске игры и следит за ним в каждом кадре:
private Transform player;
void Start()
{
player = GameObject.Find("Player").transform;
}
void Update()
{
transform.LookAt(player);
}Имя должно точно совпадать, включая заглавные буквы и пробелы: поиск по "player" или "Player " ничего не найдёт. Find также пропускает неактивные (скрытые) объекты. Если поиск не удался, он молча возвращает null, а ошибка появляется на следующей строке, где используется результат: здесь .transform вызывает NullReferenceException. Путь вроде "Car/Wheel" находит Wheel — дочерний объект Car.
Задание
СреднеРовер сообщает, как далеко находится его цель.
- В
Start()найди объект с именемGoalи сохрани его Transform вgoal. - Каждый раз, когда нажимается клавиша пробела, выведи расстояние от ровера до цели в таком виде:
Distance to goal: 5.
Цель может двигаться, поэтому измеряй расстояние в момент нажатия клавиши пробела.
Нажми Play, щёлкни по игровому окну и нажми пробел, затем нажми Check.
Попробуйте сами
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Найдите объект с именем Goal и сохраните его Transform в goal.
}
void Update()
{
// Space: выведите расстояние до цели в журнал.
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите8Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света