在 Unity 中实现双击交互可以通过定义计时器、标志位来实现。
timer :定义双击的时间间隔,单位为秒。如果两次点击的时间间隔小于这个值,则认为是双击。
[Header("---双击---")][Header("点击次数")]public int btnclick = 0; // 0 无点击 1 单击 2 双击 [Header("计时器")]public float timer = 0;// Update is called once per framevoid Update(){///双击识别//如果当前单击if (btnclick == 1){timer += Time.deltaTime;//如果时间大于1秒if (timer >= 1){//无点击btnclick = 0;//计时timer = 0;}}//如果当前已经双击else if (btnclick == 2){//无点击btnclick = 0;//计时timer = 0;}}
通过按钮绑定事件,来更改标志位的值,可以更好的分辨是哪个按钮点击、双击。
//按钮绑定事件public void buttonClick(){//如果当前无点击if (btnclick == 0){//单击btnclick = 1;//计时timer = 0;}//如果当前已经单击else if (btnclick == 1){//如果计时为1秒以内if (timer <= 1){//双击btnclick = 2;//计时timer = 0;//双击事件//Debug.Log("双击--按钮");}}}