2016-02-17 86 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