我遇到了不间断的问题,并且决定尝试先让一些简单的工作。
每当我按下屏幕时,我都希望Touch.phase
每次都返回TouchPhase.Began
。但是,有时第一次触摸屏幕时会返回TouchPhase.Stationary
。我还注意到,当触摸离开屏幕时,它有时不会调用TouchPhase.Ended
或TouchPhase.Canceled
。我做错了什么?
这是我非常简单的代码:
void FixedUpdate() {
if(Input.touchCount == 1) {
Touch touch = Input.GetTouch(0);
switch(touch.phase) {
case TouchPhase.Began:
Debug.Log("Began: " + touch.figerId);
break;
case TouchPhase.Stationary:
Debug.Log("Stationary");
break;
case TouchPhase.Moved:
Debug.Log("Moved");
break;
case TouchPhase.Canceled:
Debug.Log("Canceled");
break;
case TouchPhase.Ended:
Debug.Log("Ended");
break;
default:
Debug.Log("Default");
break;
}
}
}
答案 0 :(得分:5)
Touch.phase
每帧都会更新,因此您必须在Update()
方法中进行检查。
FixedUpdate()
仅在每个x
帧(固定帧速率)中调用,这就是您缺少某些触摸阶段的原因。