unity鼠標(biāo)單擊物體與雙擊物體觸發(fā)不同的事件
前言
下面舉例在unity里面Canvas下面添加一個(gè)image,當(dāng)鼠標(biāo)移動(dòng)到image點(diǎn)擊一次觸發(fā)事件 Debug.Log(“SingleClick!”);當(dāng)鼠標(biāo)在image點(diǎn)擊兩次觸發(fā)事件 Debug.Log(“DoubleClick!”);鼠標(biāo)雙擊和單機(jī)出現(xiàn)不同的響應(yīng)事件
一、首先操作
在Canvas或者需要點(diǎn)擊的父物體上添加組件EventTrigger,打開 Add New Trigger 的菜單,添加 Pointer Click 事件和 Pointer Down 事件,如圖所示:
二、創(chuàng)建腳本
1.創(chuàng)建一個(gè)名為 ClickHandler 的 C# 腳本,并將其掛載到需要點(diǎn)擊的游戲?qū)ο笊稀?gt;代碼如下(示例):
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
public class ClickHandler : MonoBehaviour, IPointerClickHandler
{
// 上一次點(diǎn)擊的時(shí)間
private float lastClickTime = 0;
// 兩次點(diǎn)擊之間的最大時(shí)間間隔
private float doubleClickInterval = 0.3f;
// 單擊事件回調(diào)函數(shù)
public void OnPointerClick(PointerEventData eventData)
{
if (Time.time - lastClickTime < doubleClickInterval)
{
// 雙擊事件
Debug.Log("DoubleClick!");
}
else
{
// 單擊事件
Debug.Log("SingleClick!");
}
// 更新上一次點(diǎn)擊的時(shí)間
lastClickTime = Time.time;
}
}
—文章來源:http://www.zghlxwxcb.cn/news/detail-508081.html
總結(jié)
在上述代碼中,我們使用 lastClickTime 記錄上一次單擊的時(shí)間,在回調(diào)函數(shù)中計(jì)算兩次單擊之間的時(shí)間間隔,如果小于 doubleClickInterval,則認(rèn)為觸發(fā)了雙擊事件,否則觸發(fā)了單擊事件。文章來源地址http://www.zghlxwxcb.cn/news/detail-508081.html
到了這里,關(guān)于unity鼠標(biāo)單擊物體與雙擊物體觸發(fā)不同的事件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!