Unity 3D 球 跟随手指



我正在尝试创建一个像番茄酱球比赛这样的3D游戏,其中立方体沿着道路滑动,左右移动通过触摸控制

我面临的问题是触摸灵敏度似乎在不同的设备上反应不同,因此我无法计算所有设备的左右位移。 这就是我计算立方体左右位移的方式:

Vector2 touchDeltaPosition = Input.GetTouch(0).deltaPosition ;
transform.Translate(touchDeltaPosition.x * .1f * Time.deltaTime, 0, 0);

但是,这不是所有设备正常工作。任何帮助将不胜感激

看到这个答案:https://stackoverflow.com/a/25740565/10063126

基本上,使用了ScreenToWorldPoint
世界位置是计算的;不是屏幕触摸位置。

但是您必须手动求解增量位置。

例:

Vector3 currPos  = Input.mousePosition;
Vector3 startPos = Camera.main.ScreenToWorldPoint(currPos);
Vector3 endPos   = Camera.main.ScreenToWorldPoint(prevPos);
Vector3 deltaPos = endPos - startPos;
transform.Translate(deltaPos.x * sensitivity * Time.deltaTime, 0, 0);    
prevPos = currPos;

如何在屏幕上使用 2 个按钮,一个用于左控制,一个用于右控制,然后当按下左按钮时,您可以给出一个值以向左,而对右按钮相同。这样,您的球的运动将与被触摸位置的 X 值无关。

最新更新