通过c#实现速度统一3D

时间:2012-11-29 10:28:23

标签: c#-4.0 unity3d

我目前正在以团结的方式开展3D网球比赛。当用户击球时,比如x = 0,y = 5,z = 0,速度在某个位置,比如说z = 10,到达z = 10后球x和y坐标是什么?

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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建议的内容。