我目前正在用 Unity 制作一款 3D 网球游戏。当用户击球时,比如说在x=0,y=5,z=0,速度在某个位置,比如z=10,达到z=10后球x和y坐标是多少?
要获得球的速度,您必须使用球的刚体。
如果您的脚本作为球的组件附加,您将通过 rigidbody.velocity.magnitude
访问它。
尽管 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的建议。