Unity 3D: Como detectar o clique do mouse

Utilizando diferentes classe CSharp podemos obter facilmente qual botão do mouse foi clicado, inclusive saber o estado.

Independente do seu projeto, muito provavelmente você já precisou detectar o clique do mouse através de uma classe C# dentro da Unity 3D, não é mesmo? A engine nos oferece diferentes métodos para obter não só o clique, mas também o estado.

O estado pode ser quando o usuário clicou, mantém pressionado ou soltou o botão do mouse, tudo isso podemos obter usando simples códigos em  nosso arquivo. Temos também algumas formas de obter os cliques, sendo que uma delas é mais simples e intuitiva.

Veja o código C# abaixo com os possíveis métodos.

void Update()
{
        if (Input.GetMouseButtonDown(0))
            Debug.Log("Botão esquerdo pressionado");

        if (Input.GetMouseButtonUp(1))
            Debug.Log("Botão direito pressionado");

        if (Input.GetMouseButton(2))
            Debug.Log("Botão scroll pressionado");

Os eventos são:

  • GetMouseButtonDown - Detecta se o botão do mouse foi pressionado;
  • GetMouseButton - Detecta se o botão do mouse está pressionado;
  • GetMouseButtonUp - Detecta se o botão do mouse foi solto.

Note que os três métodos recebem como parâmetro um inteiro, sendo eles:

  • 0 - Botão esquerdo;
  • 1 - Botão direito;
  • 2 - botão de scroll (rodinha).

Bem, agora que você aprendeu a utilizar o método GetMouseButton, assista a nossa videoaula abaixo para aprender a utilizar um segundo método.

Código completo da nossa videoaula.

using UnityEngine;

public class MouseClick : MonoBehaviour
{

    public KeyCode mouseButton = KeyCode.Mouse0;

    void Update()
    {
        if (Input.GetMouseButtonDown(0))
            Debug.Log("Botão esquerdo pressionado");

        if (Input.GetMouseButtonUp(1))
            Debug.Log("Botão direito pressionado");

        if (Input.GetMouseButton(2))
            Debug.Log("Botão scroll pressionado");

        //Retorna se o botão está pressionado
        //Input.GetMouseButton(0)

        //Retorna se o botão do mouse foi pressionado
        //inputGetMouseButtonDown(1)

        //Retorna se o botão do mouse foi solto
        //inputGetMouseButtonUp(2)


        if (Input.GetKeyDown(mouseButton))
        {
            Debug.LogWarning("Faça alguma coisaaa");
        }

    }
}