Unity ScrollRect 在Content子物体挂载了EventTrigger脚本后,无法触发拖拽

丁星火
2023-12-01

Content里面的子物体在挂载了EventTrigger脚本后,会屏蔽掉ScrollRect的拖拽。导致拖拽Content中物体的时候,没有拖拽效果。

解决方法:

自己写一个脚本继承Eventrigger,然后在EventTrigger中判断是否处于ScrollRect下,找到ScrollRect脚本:

  ScrollRect scrollrect = GetComponentInParent<ScrollRect>();
        if (scrollrect != null)
        {
            Transform rect = scrollrect.content;
            if (rect != null)
            {
                if (transform.IsChildOf(rect.parent))
                {
                    _scrollrect = scrollrect;
                }
            }
        }

 

然后脚本重写Eventtrigger中的OnBeginDrag,OnDrag,OnEndDrag,OnInitializePotentialDrag,OnScroll

并在这几个函数中,调用ScrollRect中的对应函数。这样就能触发ScrollRect的事件了EventTrigger

 类似资料: