2016-02-17 44 views
2

我的问题的一个简单的例子OnPointerHold干扰 - 我用统一的用户界面来创建以下文件:与滚动矩形滚动

enter image description here

大型面板,包含小板的列表。我已将Scroll Rect附加到容器游戏对象,从而使较小的面板可水平滚动。没有问题,一切都按预期工作。

但是,我有一个脚本附加到每个较小的面板,它实现了OnPointerHold接口。现在,当我尝试滚动较小的面板时,OnPointerHold事件被触发,出于某种原因阻止滚动。

任何想法为什么发生这种情况?

我的真实情况是我需要有一个可滚动的图像列表,如果玩家点击了&可以将其拖动到场景中,则可以将其拖动到场景中。我使用OnPointerHold检测水龙头&保持 - 如果0.7秒过去了,然后让玩家拖动图像。不过,我仍然希望玩家能够在列表中滚动。我愿意接受其他关于如何实现这一目标的建议。

提前致谢,保持良好的工作!

+0

我不认为这是个好主意,想象一下,用户非常缓慢地保持其中一个图像的手指 - 0.7s通过,他开始拖动,但他不想要它。但要解决这个问题,只需在滚动rect更改位置时取消拖动操作即可。 –

回答

2

您只需要实现IPointerDownHandlerIPointerUpHandler接口。只要您不实施拖动或暂停处理程序,拖动并按住事件应该直接传递到Scroll Rect

要使用你的目的IPointerDownHandlerIPointerUpHandler刚刚从void OnPointerDown (PointerEventData eventData) begining计时叫,如果没有void OnPointerUp (PointerEventData eventData)被称为在给定的时间(0.7sec),从Scroll Rect搬出形象,重视一些帆布,和更新其位置指向位置。

而且这个解决方案是一件好事,因为如果你开始拖动Scroll Rect,该void OnPointerUp (PointerEventData eventData)将被调用,这是很好的,你要在给定的时间(0.7sec)拖动Scroll Rect

+0

非常感谢,@Jerry Switalski!你是对的,IPointerDownHandler和IPointerUpHandler不会干扰Scroll Rect的滚动操作。我重新编写了我的代码,就像你说的,一切似乎都在按照我的意愿工作。 – ExplodingTiger