我的问题是我通过触摸控制 Y 轴上的一个对象,但是当我在屏幕上多点触摸并撤回第一次触摸时,游戏对象从第一次触摸位置跳到第二次触摸位置。
我希望即使玩家撤回了第一次触摸,对象的移动仍然像第一次触摸一样继续。
我该如何解决?
我的代码:
void Update () {
if (die == true)
return;
if(Input.GetMouseButtonUp(0)){
point = transform.position;
click = false;
}
if (Input.GetMouseButton(0)) {
ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
last = ray.GetPoint(1);
if(click==false){
click=true;
first = last;
}
transform.position = new Vector2(0, point.y + last.y - first.y );
}
}
最佳答案
正如 SteakOverlow 所提到的,如果您使用特定于触摸的代码,您可以使用更多有用的方法。
当发生触摸时,您可以使用 输入.GetTouch(0) 获得 Touch 结构。这个结构体包含了很多关于触摸的有用信息。比如fingerID,让你知道用的是哪个手指,phase,让你知道手指当前处于哪个触摸状态。 如果该阶段“结束”,那么您可以存储手指的最新位置,然后让下一个手指继续操作,并使用从最后一个手指到新手指的偏移量。
关于c# - 如何在 Unity 中阻止多点触控跳转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29809623/