Menu
CoddyTech

Espacio local y global

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 19 de 67.

Un objeto tiene sus propias direcciones, además de las del mundo. transform.forward indica hacia dónde apunta la nariz del objeto (la flecha azul en la vista Scene de Unity), expresado como un vector del mundo de una unidad de longitud; transform.right y transform.up son su derecha y su arriba. Gira el objeto y sus direcciones girarán con él. Este avión de papel está girado 90 grados alrededor de y en la escena, así que vuela a lo largo del eje x del mundo, hacia donde apunta:

public float speed = 4f;

void Update()
{
    transform.position += transform.forward * speed * Time.deltaTime;
}

transform.Translate(Vector3.forward * speed * Time.deltaTime) hace lo mismo, porque Translate interpreta su vector en el espacio propio del objeto: ahí, Vector3.forward significa hacia delante para el objeto. Pasa Space.World como segundo argumento y usará los ejes del mundo en su lugar, así que transform.Translate(Vector3.forward * speed * Time.deltaTime, Space.World) lo mueve a lo largo del eje z del mundo, independientemente de hacia dónde apunte el avión.

transform.Rotate también gira alrededor de los ejes propios del objeto. Visto desde arriba, un ángulo positivo alrededor de y gira un objeto erguido hacia la derecha, y uno negativo hacia la izquierda; su transform.forward gira con él.

challenge icon

Desafío

Fácil

Dale al tanque controles de movimiento: la flecha derecha lo gira hacia la derecha y la flecha izquierda lo gira hacia la izquierda, alrededor de su eje y a turn grados por segundo. La flecha hacia arriba lo impulsa hacia adelante, en la dirección en que apunta, a speed unidades por segundo. Girar por sí solo no lo mueve.

Presiona Play, gira y conduce, después presiona Check.

Pruébalo tú mismo

using UnityEngine;

public class Tank : MonoBehaviour
{
    public float speed = 3f;
    public float turn = 90f;

    void Update()
    {
        // Flechas derecha/izquierda: girar alrededor del eje y. Flecha arriba: avanzar en la dirección hacia la que apunta el tanque.
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos de scripting en Unity