Script de aparência do mouse para Unity

O script abaixo permite o movimento de rotação acionado pelo mouse com opções para controlar o eixo X, o eixo Y ou ambos simultaneamente. Ideal para criar controles de personagem imersivos ou perspectivas de câmera dinâmicas em projetos Unity. Personalize as restrições de sensibilidade e rotação para adaptar a experiência às suas necessidades específicas.

Passos

  • Crie um novo script, nomeie-o 'SC_MouseLook' e cole o código abaixo dentro dele.

'SC_MouseLook.cs'

using UnityEngine;

public class SC_MouseLook : MonoBehaviour
{
    public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
    public RotationAxes axes = RotationAxes.MouseXAndY;
    public float sensitivityX = 15F;
    public float sensitivityY = 15F;

    public float minimumX = -360F;
    public float maximumX = 360F;

    public float minimumY = -60F;
    public float maximumY = 60F;

    float rotationY = 0F;

    void Update()
    {
        if (axes == RotationAxes.MouseXAndY)
        {
            float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;

            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
        }
        else if (axes == RotationAxes.MouseX)
        {
            transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
        }
        else
        {
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
        }
    }

    void Start()
    {
        // Make the rigid body not change rotation
        if (GetComponent<Rigidbody>())
            GetComponent<Rigidbody>().freezeRotation = true;
    }
}
  • Anexe o script 'SC_MouseLook' ao seu GameObject ou Câmera em Unity.
  • Escolha eixos de rotação ("MouseXAndY", "MouseX" ou "MouseY") no Inspector.
  • Ajuste a sensibilidade do mouse com os parâmetros "sensitivityX" e "sensitivityY".
  • Opcionalmente, defina restrições de rotação usando "minimumX", "maximumX", "minimumY" e "maximumY".
  • Personalize outros parâmetros com base nos requisitos do seu projeto.
  • Entre no modo Play para testar e observar o movimento da câmera acionado pelo mouse.
  • Ajuste as restrições de sensibilidade e rotação para o comportamento desejado.
  • Integre o GameObject com 'SC_MouseLook' em seu projeto maior Unity.
Artigos sugeridos
Script para criar um interruptor de luz no Unity
Unity Como gerar objetos com um clique do mouse
Seleção de unidade estilo RTS para Unity
Script C# para criar um efeito de trilha de cursor no Unity
FPC Swimmer - Um ativo de unidade abrangente para ambientes aquáticos imersivos
Script de tiro com arma baseado em Raycast e projéteis para Unity
Como configurar o controlador de joystick para movimento no Unity