更新中百分比从起点到终点的距离

时间:2016-01-23 06:43:39

标签: unity3d distance transformation

float curpos = player.transform.position.magnitude;
float targetpos=GameObject.Find ("target").transform.position.magnitude;
float percentDist = (curCarpos / targetpos) * 100;

我想要做的是计算从当前点开始一直移动到终点的路上的百分比,从零开始,一旦到达它应该是100.

出于某种原因,它从14%开始下降到0%,然后从0%-99%开始。

2 个答案:

答案 0 :(得分:0)

我认为你应该得到你的起始位置,以获得行进路径的百分比。

float percentDist = ((curCarpos - startingPos) / (targetpos - startingPos)) * 100;

当你开始计算行进方式的百分比时,得到起始位置的浮点数,之后不要更新此变量。

答案 1 :(得分:0)

你做错了。在这种情况下,矢量幅度是无用的。你需要这样的东西:

在所有动作之前调用它。

float startDistance = Vector3.Distance(player.transform.position, target.transform.position);

这在运动中。

float currentDistance = Vector3.Distance(player.transform.position, target.transform.position);

float percentage =(currentDistance / startDistance) * 100f;