UGUI事件分为两大类:点击和拖拽。
点击包括 pointerdown, pointerup。
拖拽包括 begindrag, drag, enddrag。
点击事件无穿透:只会被最上层UI响应,不会向下层传递。
拖拽事件半穿透:透过上层UI直到遇见实现了拖拽事件的第一个UI,并且不会向下层传递。
举例:一堆重叠在同一位置的按钮按层次从上到下依次为A,B,C,D
1,只有最上层的按钮A能收到点击事件。下面的全部被挡住了。
2,给B实现 IBeginDrag, IDrag, IEndDrag接口,则发现对应的事件接口有调用:OnBeginDrag(eventdata), OnDrag(eventdata), OnEndDrag(eventdata)
这说明B没有被上层UI A挡住。
3,给A,B同时实现 IBeginDrag, IDrag, IEndDrag接口,则只有A的对应事件会被调用,B的事件没被调用。
这说明拖拽事件不会向下层传递。
4,给A实现点击接口,给B实现拖拽接口,给C实现点击接口,给D实现拖拽接口。则A能收到点击事件,B能收到拖拽事件。C,D没收到任何事件。
时间: 2024-10-27 03:59:35