Menu
CoddyTech

Направления

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

challenge icon

Задание

Легко

Управляй крюком крана с помощью четырёх стрелок, используя именованные направления Unity.

  1. В Update() напиши по одному if с Input.GetKey для каждой клавиши со стрелкой.
  2. Каждое условие прибавляет направление, умноженное на 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

Потренируйтесь самостоятельно: Песочница Unity