Menu
CoddyTech

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.

challenge icon

Desafío

Intermedio

Haz que el rover mire hacia donde se desplaza.

  1. Debajo del comentario en Update(), escribe if (move != Vector3.zero) para que el rover mantenga la orientación cuando esté parado.
  2. 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

Practica por tu cuenta: Playground de Unity