【发布时间】:2017-01-17 11:56:54
【问题描述】:
我在 Unity 中编写了自己的组件,它实现了 IBeginDragHandler、IDragHandler 和 IDropHandler。我想添加一个 UnityEngine.UI 附带的 EventTrigger 组件,但是当我添加它时,我停止在我的组件上调用 OnDrop。照常调用 OnBeginDrag 和 OnDrag。
我的组件代码:
public class MyComponent : MonoBehaviour, IBeginDragHandler, IDragHandler, IDropHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
Debug.Log("OnBeginDrag!");
}
public void OnDrag(PointerEventData eventData)
{
Debug.Log("OnDrag!");
}
public void OnDrop(PointerEventData eventData)
{
Debug.Log("OnDrop!");
}
}
当我使用附加此组件的 Game 对象开始我的场景时,预期的日志输出是:
OnBeginDrag!
OnDrag!
...
OnDrag!
OnDrop!
只要我只有默认组件和我的组件就是这种情况。但是,如果我将 Event -> Event Trigger 组件(甚至没有在其中指定任何内容)添加到同一个 GameObject 并再次运行,则输出为:
OnBeginDrag!
OnDrag!
...
OnDrag!
永远不会调用 OnDrop。组件的顺序不会影响任何事情。
有没有办法阻止 EventTrigger 用完 OnDrop 调用?
【问题讨论】: