Unity Touch.Phase.Position 总是返回 (0,0,0)

Unity Touch.Phase.Position always returning (0,0,0)

所以我有下面的代码

private Touch touch;
private Vector2 beginTouchPosition;
private Vector2 endTouchPosition;
public GameObject timeText;
public GameObject CashText;

void Update()
{
    if (Input.touchCount > 0)
    {
        switch (Input.GetTouch(0).phase) 
        {
            case TouchPhase.Began:
                beginTouchPosition = touch.position;
                timeText.GetComponent<Text>().text = beginTouchPosition.y.ToString();
                break;

            case TouchPhase.Ended:
                endTouchPosition = touch.position;
                CashText.GetComponent<Text>().text = endTouchPosition.y.ToString();
                if (beginTouchPosition == endTouchPosition) 
                { 
                    //Do Stuff
                }
                break;
        }
    }
}

上面代码的问题是timeText和cashText都显示(0,0,0),意思是说began.position阶段的位置总是(0,0,0), end.position 阶段也是如此。尽管他们绝对不是。

发生这种情况是因为您从未指定要触摸的任何东西。所以是空的

if (Input.touchCount > 0)
{
   touch = Input.GetTouch(0);
   switch (touch.phase)
   {
      .....
   }
}