我想在屏幕上显示车速公里,但我只有0公里,这是不工作。虽然我有这个代码。任何建议将是伟大的谢谢
public Text text;
private double Speed;
private Vector3 startingPosition, speedvec;
void Start ()
{
startingPosition = transform.position;
}
void FixedUpdate()
{
speedvec = ((transform.position - startingPosition) / Time.deltaTime);
Speed = (int)(speedvec.magnitude) * 3.6; // 3.6 is the constant to convert a value from m/s to km/h, because i think that the speed which is being calculated here is coming in m/s, if you want it in mph, you should use ~2,2374 instead of 3.6 (assuming that 1 mph = 1.609 kmh)
startingPosition = transform.position;
text.text = Speed + "km/h"; // or mph
}
任何更新/新的代码编辑将是伟大的.谢谢
3条答案
按热度按时间eqqqjvef1#
从评论中可以看出,OP显然附加了显示在速度指示器Text GameObject下的代码,而不是Car。
transform.position
以及
起始位置
始终为相同值,因为文本对象是一个静止的UI元素,根本不移动。(世界空间UI对象除外)
你需要理解transform.position返回代码附加到的GameObject的位置。所以如果你把它附加到文本上,它会给予你文本的位置而不是汽车的位置。
这里的解决方案是使用刚体将代码附加到Car,然后通过检查器将层次中的文本游戏对象分配给速度指示器Text组件变量。
最后,对于刚体组件,您可以简单地通过以下公式获得速度:
svgewumm2#
我目前正在我的项目中使用这段代码,它工作得很完美。记住我添加了一些选项,使它更完整。
iq0todco3#
我来自未来。只是想让你知道如果你想让这样的东西工作的权利开箱即用,你可以只使用我的代码: