UGUI 事件穿透使Scrollrect 滚动
public class TouchPenetrate : MonoBehaviour, IPointerClickHandler,IBeginDragHandler,IDragHandler,IPointerDownHandler,IScrollHandler { public GameObject ScrollGo; bool beginDrag = false; public void OnScroll(PointerEventData eventData) { PassEvent(eventData, ExecuteEvents.scrollHandler); } public void OnPointerDown(PointerEventData eventData) { //PassEvent(eventData, ExecuteEvents.pointerDownHandler); } public void OnPointerClick(PointerEventData eventData) { //PassEvent(eventData, ExecuteEvents.pointerClickHandler); } public void OnBeginDrag(PointerEventData eventData) { beginDrag = true; PassEvent(eventData, ExecuteEvents.beginDragHandler); } public void OnDrag(PointerEventData eventData) { PassEvent(eventData, ExecuteEvents.dragHandler); } //public void OnDragEnd(PointerEventData eventData) //{ // PassEvent(eventData, ExecuteEvents.endDragHandler); //} private void Update() { if (Input.GetMouseButtonUp(0)) { if (beginDrag) { PointerEventData data = new PointerEventData(EventSystem.current); data.button =0; PassEvent(data, ExecuteEvents.endDragHandler); } } } public void PassEvent<T>(PointerEventData data, ExecuteEvents.EventFunction<T> function) where T : IEventSystemHandler { ExecuteEvents.Execute(ScrollGo, data, function); } }
https://blog.csdn.net/qq_14914623