Добавление компонента
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 46 из 85.
gameObject.AddComponent<T>() добавляет объекту новый компонент типа T во время выполнения игры и возвращает его, чтобы ты мог настроить его в следующих строках. Он принадлежит GameObject, к которому скрипт обращается через gameObject. Когда игра начинается, этот костёр освещает себя тёплым оранжевым светом:
void Start()
{
Light glow = gameObject.AddComponent<Light>();
glow.color = new Color(1f, 0.5f, 0f);
glow.intensity = 2f;
}Компонент, добавленный таким способом, существует, пока выполняется игра. Останови «Играть» — и объект вернётся к сохранённому в сцене состоянию, без компонента Light. Твои собственные скрипты тоже являются компонентами: gameObject.AddComponent<Spinner>() добавляет Spinner, который начинает работать, как и любой другой скрипт.
Большинство компонентов можно добавлять несколько раз, но некоторые — нельзя: у объекта может быть не более одного Rigidbody, а при попытке добавить второй вместо этого в Console появляется предупреждение: Can't add component 'Rigidbody'. Код, который может выполняться несколько раз, перед добавлением проверяет, есть ли у объекта уже этот компонент.
Задание
СреднеНажатие пробела трясёт пальму, и кокос падает.
- В
Update()приInput.GetKeyDown(KeyCode.Space)добавь Rigidbody с помощьюgameObject.AddComponent<Rigidbody>(). - Добавляй его, только если у кокоса его ещё нет:
!TryGetComponent(out Rigidbody rb). Повторное нажатие пробела не добавит второй Rigidbody.
Нажми «Играть» и нажми пробел: кокос упадёт на песок. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class CoconutDrop : MonoBehaviour
{
void Update()
{
// Space: добавьте Rigidbody, если у кокоса его ещё нет
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity