Unity 6.3
0 онлайн 30 гостей 3 в системе
Вход

Transform.forward

Declaration

public Vector3 forward;

Описание

Возвращает нормализованный вектор, представляющий синюю ось преобразования в мировом пространстве.

В отличие от Vector3.forward, которое является постоянным направлением в мировом пространстве, Transform.forward — локальное направление движения вперед для этого GameObject. Поворот этого GameObject изменит Transform.forward направление.

Пример ниже показывает, как манипулировать GameObjectположение вдоль оси Z (голубая ось) преобразования в мировом пространстве.

using UnityEngine;

public class Example : MonoBehaviour { Rigidbody m_Rigidbody; float m_Speed;

void Start() { //Fetch the Rigidbody component you attach from your GameObject m_Rigidbody = GetComponent<Rigidbody>(); //Set the speed of the GameObject m_Speed = 10.0f; }

void Update() { if (Input.GetKey(KeyCode.UpArrow)) { //Move the Rigidbody forwards constantly at speed you define (the blue arrow axis in Scene view) m_Rigidbody.velocity = transform.forward * m_Speed; }

if (Input.GetKey(KeyCode.DownArrow)) { //Move the Rigidbody backwards constantly at the speed you define (the blue arrow axis in Scene view) m_Rigidbody.velocity = -transform.forward * m_Speed; }

if (Input.GetKey(KeyCode.RightArrow)) { //Rotate the sprite about the Y axis in the positive direction transform.Rotate(new Vector3(0, 1, 0) * Time.deltaTime * m_Speed, Space.World); }

if (Input.GetKey(KeyCode.LeftArrow)) { //Rotate the sprite about the Y axis in the negative direction transform.Rotate(new Vector3(0, -1, 0) * Time.deltaTime * m_Speed, Space.World); } } }

Еще один пример:

using UnityEngine;

// Computes the angle between the direction of the target from this object and this object's viewing direction (forward).

public class Example : MonoBehaviour { public float angleBetween = 0.0f; public Transform target;

void Update() { Vector3 targetDir = target.position - transform.position; angleBetween = Vector3.Angle(transform.forward, targetDir); } }