RequireComponent
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 47 из 85.
[RequireComponent(typeof(Rigidbody))], написанный над классом скрипта, сообщает Unity, что скрипт не может работать без Rigidbody на том же объекте:
[RequireComponent(typeof(Rigidbody))]
public class Jumper : MonoBehaviour
{
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
}Unity реагирует на это, когда скрипт добавляют к объекту в Inspector или с помощью AddComponent: если у объекта нет Rigidbody, Unity добавляет его. Пока Jumper находится на объекте, Inspector не позволяет удалить этот Rigidbody. Поэтому GetComponent здесь всегда находит его, и проверка в Jumper не нужна.
Атрибут не действует задним числом: объекты, на которых Jumper уже был до написания этой строки, не получат Rigidbody, пока скрипт не удалят и не добавят снова. В одном атрибуте можно указать до трёх типов, как в [RequireComponent(typeof(Rigidbody), typeof(BoxCollider))], а у класса может быть несколько таких атрибутов.
Попробуйте сами
В этом уроке нет задания по программированию.
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity