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)
{
.....
}
}
所以我有下面的代码
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)
{
.....
}
}