Unity Touch阶段返回不正确的结果

pro*_*007 3 touch unity-game-engine

Unity中,我试图使用Touch.

我对它有不间断的问题,并决定尝试先让一些简单的工作.

每当我按下屏幕,我都希望每次都能Touch.phase回来TouchPhase.Began.但是,有时TouchPhase.Stationary第一次触摸屏幕时会返回.我也注意到它有时不会打电话TouchPhase.EndedTouchPhase.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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*ann 6

Touch.phase每帧都会更新,因此您必须在Update()方法中进行检查.

FixedUpdate()只调用每一x帧(固定帧速率),这就是你缺少一些触摸阶段的原因.