Transform LookAt: Como fazer um Gameobject olhar para outro

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

Publicado em

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.

Gameobject e target,
Gameobject e target,

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.

Script para modificação da rotação.
Script para modificação da rotação.

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

Transform LookAt: Como fazer um Gameobject olhar para outro - resultado final
Transform LookAt: Como fazer um Gameobject olhar para outro - resultado final

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Deixe um comentário
Aguarde...