我目前正在统一制作 3D 网球游戏。当用户击球时,比如在 x=0,y=5,z=0,速度在某个位置,比如 z=10,到达 z=10 后球的 x 和 y 坐标是多少?
问问题
356 次
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 回答