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.

Publicado em

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");
        }

    }
}


 

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.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção

Todos os nossos cursos em promoção

Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção