Получение компонента
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 30 из 67.
GameObject — это контейнер для компонентов: Transform, MeshRenderer, который его отображает, коллайдер и ваши скрипты. GetComponent<Renderer>() возвращает компонент указанного типа на том же объекте, и с его помощью ваш скрипт изменяет поведение этого компонента. transform — это готовое сокращение для Transform; все остальные компоненты вы получаете самостоятельно.
Этот куб становится красным при нажатии Space. Он находит свой Renderer один раз, в Start(), и сохраняет его в поле: GetComponent ищет компоненты объекта при каждом вызове, а результат не меняется.
Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
rend.material.color = Color.red;
}
}rend.material при первом использовании создаёт для этого объекта собственную копию материала, поэтому другие объекты, использующие тот же материал, сохраняют свой цвет. Unity предоставляет именованные цвета, например Color.red, Color.green, Color.blue, Color.yellow и Color.gray; new Color(r, g, b) создаёт любой другой цвет, где каждая составляющая находится в диапазоне от 0 до 1.
Задание
СреднеСигнальный свет сначала горит красным. Каждый щелчок переключает его на следующий цвет в таком порядке: красный, жёлтый, зелёный, затем снова красный и так далее.
Получите Renderer один раз в Start() и сохраните его в поле. Используйте Color.red, Color.yellow и Color.green.
Нажмите Играть, несколько раз щёлкните по игровому окну, затем нажмите Проверить.
Попробуйте сами
using UnityEngine;
public class SignalLight : MonoBehaviour
{
void Start()
{
}
void Update()
{
// При каждом щелчке: красный, затем жёлтый, затем зелёный, затем снова красный
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света