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.