2

我目前正在统一制作 3D 网球游戏。当用户击球时,比如在 x=0,y=5,z=0,速度在某个位置,比如 z=10,到达 z=10 后球的 x 和 y 坐标是多少?

4

2 回答 2

0

虽然 Heilo 的方法可以完美运行,但我强调获得直接速度测量的想法,例如距离/时间,时间是 Update() 方法中更新期间的帧。

这实际上非常简单......

只需获取两个更新函数之间的距离,如下所示:

var previousPosition : Vector3;
function Update() {
    //Get the difference/distance between the previous position and the current position
    var velocity = Vector3.Distance(previousPosition, transform.position);
}

因为我在单个帧上执行此操作,所以无需计算额外的数学来获得速度。但是,如果您希望超过第二个,则需要获得游戏的 FPS 并对其进行一些数学运算。所以我建议除非您想使用此直接路线,否则请使用 Heilo 建议的方法。

于 2012-12-11T01:16:31.973 回答
0

要获得球的速度,您必须使用球的 RigidBody。

如果您的脚本作为球的一个组件附加,您可以通过rigidbody.velocity.magnitude.

于 2012-12-07T13:57:17.187 回答