五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Unity中UnityEngine.EventSystems 事件系統(tǒng) 鼠標(biāo)互動(dòng)接口 IPointer系列簡(jiǎn)介(1)

2022-08-22 00:43 作者:白白_可樂(lè)  | 我要投稿


今天和大家分享位于UnityEngine.EventSystems 的一系列接口,功能包括鼠標(biāo)點(diǎn)擊,鼠標(biāo)按下與松開,鼠標(biāo)拖動(dòng)等.

這一系列的接口默認(rèn)只能作用在開啟了 Raycast Target (默認(rèn)開啟)的 UI 元素身上,

開啟射線檢測(cè)的UI元素(以Image為例)

當(dāng)然,既然是射線檢測(cè),那么只要目標(biāo)物體有碰撞體,那么就有辦法啟用這個(gè)接口,只需在相機(jī)上添加 Physics Raycaster 或者 Physics 2D Raycaster 組件即可.2D和3D并不通用,但可共用.

相機(jī)添加射線檢測(cè)組件

以上是接口前期準(zhǔn)備,接下來(lái)開始正式介紹:

IPointerDownHandler 接口,可響應(yīng)鼠標(biāo)在自身碰撞體范圍內(nèi)按下事件

需要實(shí)現(xiàn) void OnPointerDown(PointerEventData eventData) 方法.


IPointerUpHandler 接口,可響應(yīng)鼠標(biāo)在自身碰撞體范圍內(nèi)松開事件

需要實(shí)現(xiàn)?void OnPointerUp(PointerEventData eventData) 方法.


IPointerClickHandler?接口,可響應(yīng)鼠標(biāo)在自身碰撞體范圍內(nèi)點(diǎn)擊事件,什么叫點(diǎn)擊呢,就是你在碰撞體范圍內(nèi)按下了,然后又在范圍內(nèi)松開了,這中間是可以移動(dòng)的,哪怕你移出范圍了,只要你松開的時(shí)候回來(lái)就算.

需要實(shí)現(xiàn)?void?OnPointerClick(PointerEventData eventData)?方法.


IPointerEnterHandler?接口,可響應(yīng)鼠標(biāo)進(jìn)入自身碰撞體范圍事件

需要實(shí)現(xiàn)?void?OnPointerEnter(PointerEventData eventData)?方法.


IPointerExitHandler?接口,可響應(yīng)鼠標(biāo)離開自身碰撞體范圍事件

需要實(shí)現(xiàn)?void?OnPointerExit(PointerEventData eventData)?方法.


IPointerMoveHandler?接口,可響應(yīng)鼠標(biāo)在自身碰撞體范圍內(nèi)移動(dòng)事件

需要實(shí)現(xiàn)?void?OnPointerMove(PointerEventData eventData)?方法.


IScrollHandler接口,可響應(yīng)鼠標(biāo)在自身碰撞體范圍內(nèi)滑動(dòng)滾輪事件

需要實(shí)現(xiàn)?void OnScroll(PointerEventData eventData) 方法.

上面是一個(gè)系列(算是我自己分的),接下來(lái)是拖拽相關(guān)的:

IDragHandler?接口,在事件系統(tǒng)的拖拽相關(guān)中,這是個(gè)比較關(guān)鍵的接口,雖然只

需要實(shí)現(xiàn)void OnDrag(PointerEventData eventData)方法

但是其他的幾個(gè)接口在沒(méi)有他的情況下是不完整(或者不工作的),這個(gè)方法響應(yīng)的是拖拽事件,那么所謂拖拽事件,就是鼠標(biāo)按住不放的情況下移動(dòng)了,在移動(dòng)的每一幀都會(huì)觸發(fā)拖拽事件,你按著不動(dòng)了就暫停觸發(fā),繼續(xù)動(dòng)繼續(xù)觸發(fā),松開就停止觸發(fā).

IInitializePotentialDragHandler接口,檢測(cè)當(dāng)前腳本是否實(shí)現(xiàn)了前面那個(gè)IDragHandler接口,如果腳本有IDragHandler接口的話,在你按下鼠標(biāo)之后觸發(fā)本接口(觸發(fā)時(shí)機(jī)是晚于IPointerDownHandler)

需要實(shí)現(xiàn)void OnInitializePotentialDrag(PointerEventData eventData)方法


IBeginDragHandler接口,當(dāng)拖拽開始時(shí)觸發(fā),即按下鼠標(biāo)開始移動(dòng)的時(shí)候,按著不觸發(fā),動(dòng)的那一幀觸發(fā),如果腳本沒(méi)有實(shí)現(xiàn)IDragHandler接口的話不會(huì)觸發(fā).

需要實(shí)現(xiàn)void OnBeginDrag(PointerEventData eventData) 方法.


IEndDragHandler接口,當(dāng)拖拽結(jié)束時(shí)觸發(fā),松開就是結(jié)束.

需要實(shí)現(xiàn)void?OnEndDrag(PointerEventData eventData) 方法.


IDropHandler接口,既然有拖拽,那么就自然有放置,當(dāng)你正在拖拽時(shí),如果在實(shí)現(xiàn)該接口的物體的碰撞體范圍內(nèi)松開,就會(huì)觸發(fā)該接口,觸發(fā)時(shí)機(jī)早于IEndDragHandler接口.

需要實(shí)現(xiàn)void?OnDrop(PointerEventData eventData) 方法.

接下來(lái)要介紹的是和UI行為相關(guān)的幾個(gè)接口,先看圖

Input Manager 按鈕設(shè)置

這張圖是默認(rèn)的 InputManager 的各個(gè)按鈕的設(shè)置,也包括了UI的按鈕,比如 Submit,Cancel.

如果你使用的是 InputSystem ,那么則需要在升級(jí)后的EventSystem組件中設(shè)置各個(gè)按鈕:

InputSystem 按鈕設(shè)置

接下來(lái)的幾個(gè)接口,需要?EventSystem.current.currentSelectedGameObject 不為空才會(huì)執(zhí)行.

ICancelHandler 接口,按下UI的取消鍵時(shí)觸發(fā),默認(rèn)是 ESC.

需要實(shí)現(xiàn).void OnCancel(BaseEventData eventData);

IMoveHandler 接口,按上下左右移動(dòng)至其他UI時(shí)觸發(fā).

需要實(shí)現(xiàn) void OnMove(AxisEventData eventData);

ISelectHandler 接口,被選中時(shí)觸發(fā).

需要實(shí)現(xiàn)?void OnSelect(BaseEventData eventData);

IDeselectHandler 接口,取消被選中時(shí)觸發(fā).

需要實(shí)現(xiàn)?void OnDeselect(BaseEventData eventData);

ISubmitHandler 接口,按下確認(rèn)鍵時(shí)觸發(fā),默認(rèn)是回車.

需要實(shí)現(xiàn)?void OnSubmit(BaseEventData eventData);

IUpdateSelectedHandler 接口,當(dāng)EventSystem.current.currentSelectedGameObject?不為空的時(shí)候每一幀觸發(fā).

需要實(shí)現(xiàn)?void OnUpdateSelected(BaseEventData eventData);

事件系統(tǒng)的接口就算是介紹完了,如果看的人多的話我就出個(gè)視頻具體講講.就這樣,大家下次再見.


Unity中UnityEngine.EventSystems 事件系統(tǒng) 鼠標(biāo)互動(dòng)接口 IPointer系列簡(jiǎn)介(1)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
涿州市| 苗栗市| 张北县| 浙江省| 青冈县| 盐山县| 唐海县| 夏邑县| 阿坝| 平昌县| 长宁区| 巫山县| 浮梁县| 尚志市| 吉木萨尔县| 黔南| 宣汉县| 万源市| 青海省| 太原市| 上饶县| 广水市| 东台市| 宜章县| 集安市| 桃园市| 东辽县| 元氏县| 宿州市| 绍兴县| 沿河| 和静县| 昂仁县| 伊春市| 宝鸡市| 合江县| 聊城市| 交口县| 宣威市| 德清县| 保定市|