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.
Desafío
FácilDale 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.
}
}
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
1Tu primer script
Hola, UnityColoca el cuboMuévete en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo4Vectores
Sumar vectoresDireccionesEspacio local y globalVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron7Proyecto: Atrapa la estrella
El atrapadorUna estrella fugaz10El ciclo de vida de los scripts
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vida2El Inspector
Campos del InspectorSerializeFieldNúmeros decimales y MathfAtributos del InspectorRepaso: Ascensor5Transformaciones y jerarquía
Padres e hijosEscalaMirar objetosMoverse hacia un puntoRepaso: Luna en órbita8Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias superan a FindEl valor nulo de UnityRepaso: la moneda más cercana11Proyecto: Esquiva los bloques
El corredorBloques que caen6GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz