Поиск по имени
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 56 из 85.
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 = GameObject.Find("Goal").transform;. - В
Update()приInput.GetKeyDown(KeyCode.Space)выведите в журнал"Distance to goal: " + Vector3.Distance(transform.position, goal.position).
Нажмите «Играть» и нажмите Space: в консоли появится Distance to goal: 5. Затем нажмите «Проверить».
Попробуйте сами
using UnityEngine;
public class Beacon : MonoBehaviour
{
private Transform goal;
void Start()
{
// Найди объект с именем Goal и сохрани его Transform в goal.
}
void Update()
{
// Space: выведи в лог расстояние до цели.
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity