unity常用鼠标事件
鼠标事件:
鼠标事件,都是当鼠标和gui或者碰撞体(Collider)交互时候触发。需要说明的是drag其实就是鼠标down后up之前持续每帧都会发送此消息。
OnMouseDown:当鼠标上的按钮被按下时触发的事件;
OnMouseDrag:当用户鼠标拖拽GUI元素或碰撞体时调用;
OnMouseEnter:当鼠标进入物体范围时被调用;
OnMouseExit:当鼠标退出时被调用;
OnMouseOver:当鼠标移动到某对象的上方时触发的事件;
OnMouseUp:当鼠标按键被松开时触发的事件
按下事件:Input.GetMouseButtonDown()
该方法只有一个参数,参数为0时,代表鼠标左键被按下,参数为1的时候,代表鼠标右键被按下,参数为2的时候代表鼠标中键被按下。
void Update() {
if (Input.GetMouseButtonDown(0))
Debug.Log("Pressed left click.");
if (Input.GetMouseButtonDown(1))
Debug.Log("Pressed right click.");
if (Input.GetMouseButtonDown(2))
Debug.Log("Pressed middle click.");
}
抬起事件:Input.GetMouseButtonUp()
鼠标在按下后肯定要抬起,按下的时候会触发按下事件,抬起的时候会触发抬起事件。与按下事件相同,抬起事件也只有一个参数,当参数为0的时候代表鼠标左键抬起,参数为1的时候代表鼠标右键被抬起,参数为2的时候代表鼠标中键被抬起。
void Update() {
if (Input.GetMouseButtonDown(0))
Debug.Log("Pressed left click.");
if (Input.GetMouseButtonDown(1))
Debug.Log("Pressed right click.");
if (Input.GetMouseButtonDown(2))
Debug.Log("Pressed middle click.");
}
长按事件:Input.GetMouseButton()
检测鼠标三个三个按键中某一按键一直按下的状态或者是获得按下的按键,和之前的两个事件一样,只有一个参数,当参数为0的时候代表鼠标左键长按,参数为1的时候代表鼠标右键长按,参数为2的时候代表鼠标中键被长按。
void Update() {
if (Input.GetMouseButton(0))
Debug.Log("Pressed left click.");
if (Input.GetMouseButton(1))
Debug.Log("Pressed right click.");
if (Input.GetMouseButton(2))
Debug.Log("Pressed middle click.");
}