Направления
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 25 из 85.
В Unity есть названия для шести направлений, длина каждого из которых равна одной единице:
Vector3.right(1, 0, 0) иVector3.left(-1, 0, 0)Vector3.up(0, 1, 0) иVector3.down(0, -1, 0)Vector3.forward(0, 0, 1) иVector3.back(0, 0, -1)
Также есть Vector3.zero (0, 0, 0) и Vector3.one (1, 1, 1). Поскольку длина каждого направления равна одной единице, умножение направления на скорость даёт перемещение ровно на это расстояние. Эта улитка ползёт от камеры со скоростью 0.5 единицы в секунду:
public float speed = 0.5f;
void Update()
{
transform.position += Vector3.forward * speed * Time.deltaTime;
}Это то же перемещение, что и new Vector3(0, 0, speed * Time.deltaTime), но направление легче прочитать и сложнее поместить не на ту ось. Знак минус меняет направление на противоположное: -Vector3.forward — это Vector3.back. Эти направления относятся к миру, а не к объекту: Vector3.forward — это ось z мира, даже когда улитка повернута в другую сторону. В следующем уроке объекты будут перемещаться в направлении, куда они обращены.
Задание
ЛегкоУправляй крюком крана с помощью четырёх стрелок, используя именованные направления Unity.
- В
Update()напиши по одномуifсInput.GetKeyдля каждой клавиши со стрелкой. - Каждое условие прибавляет направление, умноженное на
speed * Time.deltaTime:Vector3.right,Vector3.left,Vector3.upилиVector3.down, как вtransform.position += Vector3.up * speed * Time.deltaTime;.
Нажми «Играть» и управляй крюком: он скользит в стороны, поднимается и опускается. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Hook : MonoBehaviour
{
public float speed = 2f;
void Update()
{
// Стрелки вправо/влево: перемещение вдоль оси x. Стрелки вверх/вниз: подъём и опускание.
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity