Transform LookAt: Como fazer um Gameobject olhar para outro

Utilizando um método especifico da classe Transform conseguimos rotacionar GameObject facilmente na Unity 3D.

Existem basicamente duas formas de fazer com que um objeto olhe para o outro e acompanhe o movimento. A primeira é utilizando o Quaternion e a outra utilizando o Transform, ambas as classes possuem métodos com diferentes implementações para resultados semelhantes.

Vamos trabalhar com a classe Transform, ela tem uma implementação mais simples e na maioria das vezes já supre as nossas necessidades.

Para o nosso exemplo, vamos utilizar a esfera como target, ou seja, nosso cubo vai acompanhar seus movimentos. Utilizamos também um cubo para deixar mais nítido o resultado final.

A implementação é bem simples, vamos criar um script chamado de LookToObject, nele vamos inserir o seguinte código:

using UnityEngine;

public class LookToObject : MonoBehaviour
{
    public Transform target;

    void Update()
    {
        transform.LookAt(target);
    }
}

Para fazer o nosso GameObject olhar para outro, utilizamos o método LookAt, que recebe no seu primeiro parâmetro a posição do objeto, mas nesse exemplo, a gente passou apenas o Transform declarado na linha 5.

Tudo o que precisamos fazer agora é arrastar nosso script par ao GameObject que vai acompanhar a movimentação do nosso Target. Na propriedade target do script, arraste o GameObject que deverá ser observado.

Agora só dar play e mover o target que o script já vai funcionar.