我正在开发一款“踢足球”类型的游戏,以此来学习Unity 3D技术。我已经拥有了所需的界面和功能,使得游戏看起来像这样:
我在OnUpdate中使用了一些代码来检测鼠标按钮第一次按下(或触摸阶段开始)和释放(或触摸阶段结束),并计算滑动方向、距离和持续时间。我想将这些信息转化为初始速度,以“发射”足球,但是数学知识似乎超出了我的能力范围。
我最初尝试了以下代码:
当然,在我的初始分辨率和纵横比下,这个方法效果良好,但是一旦我更改任何一个参数,它就会变得相当糟糕。我希望代码可以更加适应各种不同的分辨率和纵横比,或者至少是相对的。上面代码中使用的数字完全是随意的,并且经过迭代测试发现在我的初始分辨率下产生了理想的结果。 有什么建议吗?
![enter image description here](https://istack.dev59.com/OFN1o.webp)
我最初尝试了以下代码:
rigidbody.velocity = new Vector3(
Mathf.Min(15, swipeDelta.x * .13f),
Mathf.Min(20, swipeDelta.y * yRatio),
5 / swipeDuration);
当然,在我的初始分辨率和纵横比下,这个方法效果良好,但是一旦我更改任何一个参数,它就会变得相当糟糕。我希望代码可以更加适应各种不同的分辨率和纵横比,或者至少是相对的。上面代码中使用的数字完全是随意的,并且经过迭代测试发现在我的初始分辨率下产生了理想的结果。 有什么建议吗?