Vamos criar um exemplo prático e que faz parte do “mundo real”, que nada mais é do que um GameObject olhar para a posição do Mouse. Para esse exemplo, vamos utilizar o método RayCast e alguns outros da classe Quaternion.
Primeiramente precisamos entender o que será criado antes de começar a programar qualquer coisa, sendo assim, organizamos os GameObject em objetos vazios. Criamos nosso script que lança um raio para a posição do Mouse, por fim, utilizando o método LookRotation, obtemos a rotação que nosso GameObject precisa.
Confira nossa videoaula abaixo e logo após, você pode consultar o código utilizado durante a aula.
using UnityEngine;
public class TurretMouseLook : MonoBehaviour
{
public Transform turret;
public float velocity = 5.0f;
public bool freezyY = true;
private Ray ray;
private RaycastHit hit;
private void Update()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (!Physics.Raycast(ray, out hit))
return;
Vector3 pos = turret.position - hit.point;
if (freezyY)
pos.y = 0;
Quaternion rot = Quaternion.LookRotation(pos);
turret.rotation = Quaternion.Lerp(turret.rotation, rot, velocity * Time.deltaTime);
}
}
Conheca mais sobre nosso curso em: https://academy.satellasoft.com/course/introducao-a-unity-3d