Unity Touch.Phase.Position始终返回(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(,这意味着它说开始位置相位的位置总是(0,0,0(,结束位置相位也是。尽管他们肯定不是。

之所以会发生这种情况,是因为您从未分配任何要触摸的东西。空也是如此

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

最新更新