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