São diversas as aplicações que necessitamos controlar a câmera 3D com o Mouse, seja para mudar o ângulo de visão do Player, controlar uma filmadora, entre outros. Nesse artigo, você confere a explicação de como fazer a rotação e também pode assistir a nossa videoaula.
Para mover a câmera, temos que pensar na lógica de como isso funciona dentro do espaço 3D. Veja as ações que devem ser executadas quando movemos o Mouse.
Movimento com o mouse | Ação com a câmera |
Mouse Horizontal/Mouse X | Rotacionar no eixo Y |
Mouse Vertical/Mouse Y | Rotacionar no eixo X |
Figura 1: Rotacionar Câmera com mouse no Unity 3D.
Logo abaixo você confere nosso script de como fazer a movimentação totalmente comentando.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraMove : MonoBehaviour
{
public bool travarMouse = true; //Controla se o cursor do mouse é exibido
public float sensibilidade = 2.0f; //Controla a sensibilidade do mouse
private float mouseX = 0.0f, mouseY = 0.0f; //Variáveis que controla a rotação do mouse
void Start()
{
if (!travarMouse)
{
return;
}
Cursor.visible = false; //Oculta o cursor do mouse
Cursor.lockState = CursorLockMode.Locked; //Trava o cursor do centro
}
void Update()
{
mouseX += Input.GetAxis("Mouse X") * sensibilidade; // Incrementa o valor do eixo X e multiplica pela sensibilidade
mouseY -= Input.GetAxis("Mouse Y") * sensibilidade; // Incrementa o valor do eixo Y e multiplica pela sensibilidade. (Obs. usamos o - para inverter os valores)
transform.eulerAngles = new Vector3(mouseY, mouseX, 0); //Executa a rotação da câmera de acordo com os eixos
}
}
A seguir você pode assistir a nossa videoaula.
Espero que tenha gostado e até a próxima.
Transform.eulerAngles: https://docs.unity3d.com/ScriptReference/Transform-eulerAngles.html