以下代码为鼠标双击执行事件的方法。
using System;
using UnityEngine;
public class DoubleClickMouseButton : MonoBehaviour
{
/// <summary>
/// 鼠标双击的间隔
/// </summary>
private float doubleClickTime = 0.2f;
/// <summary>
/// 上一次点击鼠标抬起的时间
/// </summary>
private double lastClickTime;
void Start()
{
lastClickTime = Time.realtimeSinceStartup;
}
private void Update()
{
DoubleClickMouseButtonEvent(0, () =>
{
//ToDo 双击所要执行的事件
});
}
/// <summary>
/// 鼠标双击执行的事件
/// </summary>
/// <param name="mouseBtnIndex">鼠标按键</param>
/// <param name="action">双击需要执行的事件</param>
private void DoubleClickMouseButtonEvent(int mouseBtnIndex, Action action)
{
if (Input.GetMouseButtonDown(mouseBtnIndex)) //双击鼠标右键聚焦
{
if (Time.realtimeSinceStartup - lastClickTime < doubleClickTime)
{
action();
}
lastClickTime = Time.realtimeSinceStartup;
}
}
}