国产精品理论片_日韩激情视频一区_91免费版在线看_日韩专区在线_中文字幕国产一区_wwwjizz日本

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動(dòng)態(tài) > 鄭州unity3d培訓(xùn) UGUI長(zhǎng)按監(jiān)測(cè)的兩種方法

鄭州unity3d培訓(xùn) UGUI長(zhǎng)按監(jiān)測(cè)的兩種方法

來源:奇酷教育 發(fā)表于:

鄭州unity3d培訓(xùn) UGUI長(zhǎng)按監(jiān)測(cè)的兩種方法,奇酷(www qikuedu com)老師總結(jié)兩種辦法如下: 簡(jiǎn)單的demo,隨便建幾個(gè)UI,把

        鄭州unity3d培訓(xùn) UGUI長(zhǎng)按監(jiān)測(cè)的兩種方法,奇酷(www.kfqpxc.cn)老師總結(jié)兩種辦法如下:
        簡(jiǎn)單的demo,隨便建幾個(gè)UI,把腳本拖到任意物體,按1秒鐘后有響應(yīng)事件。以下腳本可避免ScrollView失效,以及重疊UI穿透選擇。
鄭州unity3d培訓(xùn),Z???VR1VJ" src="http://uploadfile.qikuedu.com/2019/0319/20190319110022305.jpg" style="width: 480px; height: 270px;" />
方法一:使用EventSystems,適合場(chǎng)景中簡(jiǎn)單的UI操作
using UnityEngine;
using UnityEngine.EventSystems;
 
public class RyanPressTest : MonoBehaviour {
        Vector3 lastMousePose;
    EventSystem m_EventSystem;
        float curT = 0;
        // 是否已經(jīng)被選擇
        bool isPressed = false;
        void Start(){
        m_EventSystem = FindObjectOfType();
        }
        void Update () {
                if(Input.GetMouseButtonDown(0)){
                        lastMousePose = Input.mousePosition;
                }
        if (Input.GetMouseButton(0) && !isPressed && lastMousePose == Input.mousePosition)
        {
                        curT += Time.deltaTime;
                        // 長(zhǎng)按1秒
                        if(curT >= 1f){
                    Debug.Log(m_EventSystem.currentSelectedGameObject + " was pressed.");
                                isPressed = true;
                        }
        }
                if(Input.GetMouseButtonUp(0)){
                        isPressed = false;
                        curT = 0;
                }
        }
}
 
方法二:使用射線,適用于鼠標(biāo)一下選擇多個(gè)UI的復(fù)雜場(chǎng)景
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
 
public class RyanPressTest : MonoBehaviour {
        Vector3 lastMousePose;
    GraphicRaycaster m_Raycaster;
    PointerEventData m_PointerEventData;
        float curT = 0;
        // 是否已經(jīng)被選擇
        bool isPressed = false;
        void Start(){
        m_Raycaster = FindObjectOfType ();
        }
        void Update () {
                if(Input.GetMouseButtonDown(0)){
                        lastMousePose = Input.mousePosition;
                }
        if (Input.GetMouseButton(0) && !isPressed && lastMousePose == Input.mousePosition)
        {
                        curT += Time.deltaTime;
            m_PointerEventData = new PointerEventData(null);
                        m_PointerEventData.position = lastMousePose;
 
            List results = new List();
            m_Raycaster.Raycast(m_PointerEventData, results);
                        // 長(zhǎng)按1秒
                        if(results.Count > 0 && curT >= 1f){
                                // 當(dāng)有多個(gè)重疊UI,results會(huì)返回所有被射線穿透的UI數(shù)組,一般我們只需要最上面的那個(gè)UI
                    Debug.Log(results[0].gameObject + " was pressed.");
                                isPressed = true;
                        }
        }
                if(Input.GetMouseButtonUp(0)){
                        isPressed = false;
                        curT = 0;
                }
        }
}
 
其實(shí)EventTrigger也能監(jiān)測(cè)長(zhǎng)按,但用了它ScrollView就失效了,還是用上面兩種方法比較通。
主站蜘蛛池模板: 成人小视频在线观看 | 亚洲午夜精品一区二区三区 | www.中文字幕av | 久久婷婷国产 | 欧美精品一区二区三区在线 | 99久久精品免费看国产小宝寻花 | 成人日韩av| 久久伦理电影 | 日韩成人在线播放 | 日韩美女一区二区三区在线观看 | 日韩在线免费观看视频 | 国产91丝袜在线播放 | 日本一区二区三区在线观看 | 五月天天丁香婷婷在线中 | 国产精品乱码一二三区的特点 | 91亚洲国产成人精品一区二三 | 99久久精品国产一区二区三区 | 欧美福利一区 | 岛国av免费观看 | 福利精品在线观看 | 天天看天天爽 | 国产成人免费视频网站视频社区 | 在线视频一区二区 | 黄在线免费观看 | 毛片免费观看 | 亚洲国产精品久久久 | 久久久久无码国产精品一区 | 久久久久久国产精品三区 | 国产高清精品一区二区三区 | 欧美在线一区二区三区四区 | 在线观看中文字幕 | 欧美日韩综合视频 | 久久综合久色欧美综合狠狠 | 国产精品欧美一区二区三区不卡 | 可以在线观看av的网站 | 午夜亚洲 | 日韩一区二区在线视频 | 欧美激情在线精品一区二区三区 | 午夜一区二区三区在线观看 | 美女亚洲一区 | 日韩在线中文字幕 |