我不确定为什么会这样,但是当用户点击屏幕上的UI按钮时,就会触发TapStart.Invoke();
。只有在轻按屏幕并且点击不在按钮上时,它才会触发。
我认为这会阻止它:EventSystem.current.currentSelectedGameObject == null
,但似乎并没有这样做。
void Update() {
if (Input.touches.Length == 1) {
Touch touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Moved && HasStarted) {
Swipe.Invoke(StartPosition, touch.position);
IsSwiping = true;
}
if (touch.phase == TouchPhase.Ended) {
if (!IsSwiping && EventSystem.current.currentSelectedGameObject == null) {
if (GameManager.Instance.Toast.ResetReady) {
TapRestart.Invoke();
} else {
TapStart.Invoke();
}
}
IsSwiping = false;
HasStarted = false;
}
}
}