Menu
CoddyTech

Направления

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 18 из 67.

В 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 мира, даже когда улитка развёрнута в другую сторону. В следующем уроке объекты будут перемещаться в направлении, куда они смотрят.

challenge icon

Задание

Легко

Управляй крюком крана с помощью клавиш со стрелками со скоростью speed единиц в секунду: стрелки вправо и влево перемещают его вправо и влево вдоль оси x, стрелка вверх поднимает его, а стрелка вниз опускает. Используй именованные направления Unity. Если ни одна клавиша не нажата, крюк остаётся на месте.

Нажми Play и управляй крюком, затем нажми Check.

Попробуйте сами

using UnityEngine;

public class Hook : MonoBehaviour
{
    public float speed = 2f;

    void Update()
    {
        // Стрелки вправо/влево: перемещают вдоль оси x. Стрелки вверх/вниз: поднимают и опускают.
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы скриптинга в Unity