UGUI 事件穿透规则
UGUI 事件穿透規(guī)則
UGUI事件分為兩大類:點(diǎn)擊和拖拽。
點(diǎn)擊包括 pointerdown, pointerup。
拖拽包括 begindrag, drag, enddrag。
點(diǎn)擊事件無穿透:只會被最上層UI響應(yīng),不會向下層傳遞。
拖拽事件半穿透:透過上層UI直到遇見實(shí)現(xiàn)了拖拽事件的第一個(gè)UI,并且不會向下層傳遞。
舉例:一堆重疊在同一位置的按鈕按層次從上到下依次為A,B,C,D
1,只有最上層的按鈕A能收到點(diǎn)擊事件。下面的全部被擋住了。
2,給B實(shí)現(xiàn) IBeginDrag, IDrag, IEndDrag接口,則發(fā)現(xiàn)對應(yīng)的事件接口有調(diào)用:OnBeginDrag(eventdata), OnDrag(eventdata), OnEndDrag(eventdata)
這說明B沒有被上層UI A擋住。
3,給A,B同時(shí)實(shí)現(xiàn)?IBeginDrag, IDrag, IEndDrag接口,則只有A的對應(yīng)事件會被調(diào)用,B的事件沒被調(diào)用。
這說明拖拽事件不會向下層傳遞。
4,給A實(shí)現(xiàn)點(diǎn)擊接口,給B實(shí)現(xiàn)拖拽接口,給C實(shí)現(xiàn)點(diǎn)擊接口,給D實(shí)現(xiàn)拖拽接口。則A能收到點(diǎn)擊事件,B能收到拖拽事件。C,D沒收到任何事件。
?
posted on 2017-06-13 12:23 時(shí)空觀察者9號 閱讀(...) 評論(...) 編輯 收藏
總結(jié)
以上是生活随笔為你收集整理的UGUI 事件穿透规则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UGUI 锚点设置为四方扩充模式然后设置
- 下一篇: C#调用C++ memcpy实现各种参数