欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Unity?UGUI的PointerEventData的介紹及使用

 更新時(shí)間:2023年07月26日 08:35:48   作者:AlianBlank  
這篇文章主要為大家介紹了Unity?UGUI的PointerEventData的介紹及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

Unity UGUI的PointerEventData的介紹及使用

1. 什么是PointerEventData?

PointerEventData是Unity中UGUI系統(tǒng)中的一個(gè)重要組件,用于處理用戶輸入的指針事件。它可以獲取用戶的點(diǎn)擊、拖拽、滾動(dòng)等操作,并提供了一系列的屬性和函數(shù)來處理這些事件。

2. PointerEventData的工作原理

PointerEventData通過封裝底層的輸入系統(tǒng),將用戶的輸入事件轉(zhuǎn)化為Unity中的事件。它可以獲取用戶的點(diǎn)擊位置、點(diǎn)擊類型、點(diǎn)擊對(duì)象等信息,并將這些信息傳遞給相應(yīng)的事件處理函數(shù)。

3. PointerEventData的常用屬性

  • position:獲取用戶點(diǎn)擊的屏幕坐標(biāo)。
  • delta:獲取用戶拖拽的位移量。
  • button:獲取用戶點(diǎn)擊的鼠標(biāo)按鈕。
  • clickCount:獲取用戶點(diǎn)擊的次數(shù)。
  • pointerEnter:獲取鼠標(biāo)指針?biāo)诘腢I對(duì)象。

4. PointerEventData的常用函數(shù)

  • GetPress():判斷鼠標(biāo)按鈕是否按下。
  • GetPressDown():判斷鼠標(biāo)按鈕是否剛剛按下。
  • GetPressUp():判斷鼠標(biāo)按鈕是否剛剛抬起。
  • IsPointerMoving():判斷鼠標(biāo)指針是否在移動(dòng)。
  • IsPointerOverGameObject():判斷鼠標(biāo)指針是否在UI對(duì)象上。

5. 完整例子代碼

例子1:獲取鼠標(biāo)點(diǎn)擊位置

using UnityEngine;
using UnityEngine.EventSystems;
public class ClickPosition : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("點(diǎn)擊位置:" + eventData.position);
    }
}

操作步驟:

  • 創(chuàng)建一個(gè)空物體,并將腳本掛載到該物體上。
  • 在場(chǎng)景中點(diǎn)擊鼠標(biāo),查看控制臺(tái)輸出的點(diǎn)擊位置。

注意事項(xiàng):

  • 需要將腳本掛載到有Collider組件的物體上,以便接收鼠標(biāo)點(diǎn)擊事件。

例子2:判斷鼠標(biāo)按鈕是否按下

using UnityEngine;
using UnityEngine.EventSystems;

public class ButtonPress : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
    public void OnPointerDown(PointerEventData eventData)
    {
        Debug.Log("鼠標(biāo)按鈕按下");
    }

    public void OnPointerUp(PointerEventData eventData)
    {
        Debug.Log("鼠標(biāo)按鈕抬起");
    }
}

操作步驟:

  • 創(chuàng)建一個(gè)按鈕,并將腳本掛載到該按鈕上。
  • 按下和抬起鼠標(biāo)按鈕,查看控制臺(tái)輸出。

注意事項(xiàng):

  • 需要將腳本掛載到Button組件上,以便接收鼠標(biāo)按鈕事件。

例子3:獲取鼠標(biāo)拖拽位移

using UnityEngine;
using UnityEngine.EventSystems;
public class DragPosition : MonoBehaviour, IDragHandler
{
    public void OnDrag(PointerEventData eventData)
    {
        Debug.Log("拖拽位移:" + eventData.delta);
    }
}

操作步驟:

  • 創(chuàng)建一個(gè)物體,并將腳本掛載到該物體上。
  • 按住鼠標(biāo)左鍵拖拽物體,查看控制臺(tái)輸出的拖拽位移。

注意事項(xiàng):

  • 需要將腳本掛載到有Collider組件的物體上,以便接收鼠標(biāo)拖拽事件。

例子4:判斷鼠標(biāo)指針是否在UI對(duì)象上

using UnityEngine;
using UnityEngine.EventSystems;
public class PointerOverUI : MonoBehaviour
{
    public void Update()
    {
        if (EventSystem.current.IsPointerOverGameObject())
        {
            Debug.Log("鼠標(biāo)指針在UI對(duì)象上");
        }
    }
}

操作步驟:

  • 創(chuàng)建一個(gè)UI對(duì)象,并將腳本掛載到一個(gè)空物體上。
  • 將鼠標(biāo)指針移動(dòng)到UI對(duì)象上,查看控制臺(tái)輸出。

注意事項(xiàng):

  • 需要將腳本掛載到一個(gè)空物體上,并在Update函數(shù)中判斷鼠標(biāo)指針是否在UI對(duì)象上。

例子5:獲取鼠標(biāo)點(diǎn)擊次數(shù)

using UnityEngine;
using UnityEngine.EventSystems;
public class ClickCount : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData eventData)
    {
        Debug.Log("點(diǎn)擊次數(shù):" + eventData.clickCount);
    }
}

操作步驟:

  • 創(chuàng)建一個(gè)按鈕,并將腳本掛載到該按鈕上。
  • 連續(xù)點(diǎn)擊按鈕,查看控制臺(tái)輸出的點(diǎn)擊次數(shù)。

注意事項(xiàng):

  • 需要將腳本掛載到Button組件上,以便接收鼠標(biāo)點(diǎn)擊事件。

參考資料

Unity官方文檔:

https://docs.unity3d.com/ScriptReference/EventSystems.PointerEventData.html

Unity官方教程:https://learn.unity.com/tutorial/unity-ui

以上就是Unity UGUI的PointerEventData的介紹及使用的詳細(xì)內(nèi)容,更多關(guān)于Unity UGUI的PointerEventData的介紹及使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#獲取網(wǎng)頁源代碼的方法

    C#獲取網(wǎng)頁源代碼的方法

    這篇文章主要介紹了C#獲取網(wǎng)頁源代碼的方法,涉及C#基于自定義函數(shù)讀取網(wǎng)頁html代碼的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • C#讀取視頻的寬度和高度等信息的方法

    C#讀取視頻的寬度和高度等信息的方法

    這篇文章主要介紹了C#讀取視頻的寬度和高度等信息的方法,通過執(zhí)行一條CMD命令來實(shí)現(xiàn)讀取視頻寬度和高度的功能,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11
  • C# Split分隔字符串的應(yīng)用(C#、split、分隔、字符串)

    C# Split分隔字符串的應(yīng)用(C#、split、分隔、字符串)

    C# Split分隔字符串主要包括用字符串分隔,用多個(gè)字符來分隔,用單個(gè)字符來分隔等方法實(shí)現(xiàn),下面的具體的實(shí)現(xiàn)代碼
    2008-11-11
  • C#遞歸算法之打靶算法分析

    C#遞歸算法之打靶算法分析

    這篇文章是對(duì)打靶算法分析,比較簡(jiǎn)單,但邏輯一定要清楚,分析問題的方法一定要準(zhǔn)確,有需要的朋友可以參考一下。
    2016-06-06
  • C#實(shí)現(xiàn)撲克游戲(21點(diǎn))的示例代碼

    C#實(shí)現(xiàn)撲克游戲(21點(diǎn))的示例代碼

    21點(diǎn)又名黑杰克,該游戲由2到6個(gè)人玩,使用除大小王之外的52張牌,游戲者的目標(biāo)是使手中的牌的點(diǎn)數(shù)之和不超過21點(diǎn)且盡量大。本文將用C#實(shí)現(xiàn)這一經(jīng)典游戲,需要的可以參考一下
    2022-08-08
  • C# Winform TextBox控件多行輸入方式

    C# Winform TextBox控件多行輸入方式

    這篇文章主要介紹了C# Winform TextBox控件多行輸入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對(duì)象

    詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對(duì)象

    這篇文章主要介紹了詳解C# 利用反射根據(jù)類名創(chuàng)建類的實(shí)例對(duì)象,“反射”其實(shí)就是利用程序集的元數(shù)據(jù)信息,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • WPF實(shí)現(xiàn)樹形表格控件的示例代碼

    WPF實(shí)現(xiàn)樹形表格控件的示例代碼

    這篇文章主要介紹了如何利用WPF框架實(shí)現(xiàn)樹形表格控件,該控件不僅能夠有效地展示復(fù)雜的層級(jí)數(shù)據(jù),還能夠提供豐富的個(gè)性化定制選項(xiàng),感興趣的可以了解下
    2024-04-04
  • 利用C#編寫Linux守護(hù)進(jìn)程實(shí)例代碼

    利用C#編寫Linux守護(hù)進(jìn)程實(shí)例代碼

    如今的編程是一場(chǎng)程序員和上帝的競(jìng)賽,程序員要開發(fā)出更大更好、傻瓜都會(huì)用到軟件,下面這篇文章主要給大家介紹了關(guān)于利用C#編寫Linux守護(hù)進(jìn)程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2018-01-01
  • C#實(shí)現(xiàn)為一張大尺寸圖片創(chuàng)建縮略圖的方法

    C#實(shí)現(xiàn)為一張大尺寸圖片創(chuàng)建縮略圖的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)為一張大尺寸圖片創(chuàng)建縮略圖的方法,涉及C#創(chuàng)建縮略圖的相關(guān)圖片操作技巧,需要的朋友可以參考下
    2015-06-06

最新評(píng)論