Добавление компонента
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 32 из 67.
gameObject.AddComponent<T>() добавляет объекту новый компонент типа T во время работы игры и возвращает его, чтобы ты мог настроить его в следующих строках. Он принадлежит GameObject, к которому скрипт обращается через gameObject. Когда игра запускается, этот костёр освещает себя тёплым оранжевым светом:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Компонент, добавленный таким способом, существует, пока работает игра. Останови Play — и объект вернётся к сохранённому в сцене состоянию, без Light. Твои собственные скрипты тоже являются компонентами: gameObject.AddComponent<Spinner>() добавляет Spinner, который начинает работать, как и любой другой скрипт.
Большинство компонентов можно добавлять несколько раз, но некоторые — нельзя: объект может содержать не более одного Rigidbody, и при запросе второго вместо этого появляется ошибка в Console. Код, который может выполниться больше одного раза, перед добавлением проверяет, есть ли уже у объекта этот компонент.
Задание
СреднеКокос висит на пальме. Нажатие пробела встряхивает дерево: кокос получает компонент Rigidbody, поэтому на него действует сила тяжести, и он падает на песок.
- До первого нажатия пробела кокос висит на месте.
- Пробел добавляет компонент Rigidbody, только если у кокоса его ещё нет, поэтому последующие нажатия ничего не добавляют.
Нажми Play, нажми пробел, затем Check.
Попробуйте сами
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: добавить Rigidbody, если у кокоса его ещё нет
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света