RequireComponent
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 33 из 67.
[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Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света