Сложение векторов
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 24 из 85.
Значение Vector3 можно хранить в переменной, а два таких значения складываются с помощью +: x складывается с x, y — с y, а z — с z. Так два толчка объединяются в одно движение. Этот пляжный мяч катится вперёд со скоростью 2 единицы в секунду, а ветер дует на него вправо со скоростью 1 единица в секунду:
Vector3 roll = new Vector3(0, 0, 2);
Vector3 wind = new Vector3(1, 0, 0);
void Update()
{
Vector3 move = roll + wind; // (1, 0, 2)
transform.position += move * Time.deltaTime;
}Умножение вектора на число умножает каждую его составляющую: wind * 3 — это (3, 0, 0), то есть шторм, а move * Time.deltaTime преобразует скорость движения за секунду в перемещение за этот кадр. Вычитание тоже выполняется по составляющим, а a - b — это шаг от точки b до точки a. Между двумя векторами нельзя поставить *: выражение roll * wind не компилируется.
Задание
ЛегкоРека несёт лодку, а стрелка вверх добавляет тягу мотора.
- В
Update()начни сVector3 move = current;. - Пока
Input.GetKey(KeyCode.UpArrow)возвращает true, добавляйmotorкmoveс помощью+=. - Добавь
move * Time.deltaTimeкtransform.position.
Нажми «Играть»: лодка будет дрейфовать вправо и пересекать реку, пока ты удерживаешь стрелку вверх. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Boat : MonoBehaviour
{
public Vector3 current = new Vector3(0, 0, 0);
public Vector3 motor = new Vector3(0, 0, 0);
void Update()
{
// Течение всегда несёт лодку.
// Пока удерживается клавиша со стрелкой вверх, мотор тоже толкает лодку.
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity