Unity Time.time无法按预期工作

时间:2015-07-05 06:02:06

标签: unity3d timer unityscript

我花了大约2个小时试图解决这个问题,但我做不到。我在Unity3d(2D)上制作了一个非常简单的拖动赛车。只是一个传感器被打破以启动计时器和沿途的几个增量时间。我已经让对手工作得很好,我可以跟踪调试日志传递的增量;但是,我无法让计时器正常工作。

static function Timer(Cone : String){

if(Cone == "StageBeamBroken" ){

    var StartTime = Time.realtimeSinceStartup;
}

Debug.Log(Cone + ": " + ( Time.realtimeSinceStartup - StartTime));}

基本上Timer(可能命名很差)函数应该接受一个String(增量的名称),然后启动计时器,然后每次与另一个增量冲突时打印(DebugLog)时间。

没有编译器错误。

输出是这样的:

StageBeamBroken: 2.6E-06
FirstIncrement: 4.89
SecondIncrement: 6.26
Final Increment: 7.26

正如您所看到的,第一次运行时,当它看到“StageBeamBroken”时(Time.time-StartTime)完美运行并输出0(基本上)。但是,然后它跳到(似乎是)自启动以来的实际运行时间而没有减去StartTime(第二个增量应该大大少于2秒。如果我坐着,不打破启动波束说40秒,40秒将加入第二增量......请帮助!

谢谢大家!

1 个答案:

答案 0 :(得分:1)

您应该在StartTime函数之外声明Timer(String)变量,因为您的程序仅在StartTime时只获取Cone == "StageBeamBroken"一次。在功能完成之后,StartTime的值就会丢失。