Menu
CoddyTech

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))], а у класса может быть несколько таких атрибутов.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы скриптинга в Unity