Mira las cosas
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 34 de 85.
transform.LookAt(point) gira un objeto para que su eje hacia delante, la flecha azul del eje z, apunte a una posición del mundo. Gira el objeto, pero no lo mueve. Este reflector está en una torre en (0, 6, 0) y apunta a la puerta en (4, 0, 10):
void Start()
{
transform.LookAt(new Vector3(4, 0, 10));
}La puerta está más abajo que la luz, así que el reflector también se inclina hacia abajo al girar: LookAt apunta directamente al punto, tanto si está más arriba como más abajo. Después, transform.forward apunta desde la luz hacia la puerta.
Si se llama en Start(), LookAt apunta una sola vez. Si se llama en Update(), vuelve a apuntar en cada fotograma, así que el objeto sigue mirando hacia el punto mientras el objeto o el punto se mueve. Su argumento siempre es una posición: LookAt(Vector3.forward) apunta al punto del mundo (0, 0, 1), un lugar junto al centro del mundo, dondequiera que esté el objeto.
Desafío
IntermedioHaz que el rover mire hacia donde se desplaza.
- Debajo del comentario en
Update(), escribeif (move != Vector3.zero)para que el rover mantenga la orientación cuando esté parado. - Dentro de él, llama a
transform.LookAt(transform.position + move);.
Pulsa «Jugar» y conduce: la parte delantera del rover gira hacia donde se desplaza. Después, pulsa «Comprobar».
Pruébalo tú mismo
using UnityEngine;
public class Rover : MonoBehaviour
{
public float speed = 3f;
void Update()
{
Vector3 move = Vector3.zero;
if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
move = move.normalized;
transform.position += move * speed * Time.deltaTime;
// Gira el rover para que mire en la dirección en la que se desplaza
}
}
Todas las lecciones de Fundamentos de scripting en Unity
1Conceptos básicos de C# en Unity
Hola, UnityVariablesLos decimales necesitan una fTexto en la consolaVariables que recuerdanIf y ElseComparar númerosRepaso: Recolector de monedas7Bucles y métodos
Repetir con forBucles dentro de buclesEscribir un métodoMétodos que respondenArraysRepaso: escalera10Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias vencen a FindEl null de UnityRepaso: moneda más cercana13Proyecto: Esquiva los bloques
El corredorBloques desde el cielo2Haz que se mueva
Coloca el cuboMuévelo en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo5Vectores
Sumar vectoresDireccionesEspacio local y mundialVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron8GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz3El Inspector
Campos del InspectorSerializeFieldFloats y MathfAtributos del InspectorRepaso: Ascensor6Transformaciones y jerarquía
Padres e hijosIza la banderaEscalaMira las cosasMuévete hacia un puntoRepaso: Luna en órbita9Proyecto: Atrapa la estrella
El cazadorUna estrella fugaz12El ciclo de vida de un script
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vidaPractica por tu cuenta: Playground de Unity