UnityのEventTriggerのバグ?と解決方法

適当なUI>Imageを作り、以下のButton.csをアタッチ
http://qerozon.jp/file/Button.cs

Unity5.3.5f1、Android実機(XperiaZ2)で検証。

Imageにタッチし、ドラッグ、Imageの外で指を離す。
07-16 18:38:43.888: I/Unity(23132): OnPointerEnter
07-16 18:38:43.890: I/Unity(23132): OnPointerDown
07-16 18:38:43.892: I/Unity(23132): OnInitializePotentialDrag
07-16 18:38:43.934: I/Unity(23132): OnBeginDrag
07-16 18:38:43.935: I/Unity(23132): OnDrag(何度か走る)
07-16 18:38:44.117: I/Unity(23132): OnPointerExit
07-16 18:38:44.445: I/Unity(23132): OnDrag(何度か走る)
07-16 18:38:44.452: I/Unity(23132): OnPointerUp
07-16 18:38:44.453: I/Unity(23132): OnEndDrag

その後、Imageの外にタッチし、ドラッグ、Imageの上で指を離す。
07-16 18:40:26.949: I/Unity(23132): OnPointerEnter
07-16 18:40:27.048: I/Unity(23132): OnPointerExit
07-16 18:40:27.066: I/Unity(23132): OnPointerEnter

最後にOnPointerEnterが走ってしまう。

解決方法は、最後のOnPointerEnterの前にInput.touchCountが0になっているので
public void OnPointerEnterのとこを

if(Input.touchCount <= 0)
return;
Debug.Log("OnPointerEnter");

とする。

根本的な解決にはなってない気がするけどまあいいや。
それにしてもなんでInput.touchCountが0、
つまり画面に触れてないのにOnPointerEnterが走るんだろう?

Leave a Reply

*