Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我想在事件上创建计时器/秒表_C#_Unity3d - Fatal编程技术网

C# 我想在事件上创建计时器/秒表

C# 我想在事件上创建计时器/秒表,c#,unity3d,C#,Unity3d,我有一个代码,工作得很好,但我认为如果我继续遵循同样的策略来做同样的事情,它会毫无理由地在处理器上超载 我有一个代表时间的变量,这个变量在游戏对象速度高于0.5f的每一帧中都停留在0,所以我不想在每一帧重置它,而是想在低于0.5f时启动计时器 if (speed >= 0.5f) { t = 0; } t = t + Time.deltaTime; 您可以使用bool值来保存性能 public static bool isTimerMov

我有一个代码,工作得很好,但我认为如果我继续遵循同样的策略来做同样的事情,它会毫无理由地在处理器上超载

我有一个代表时间的变量,这个变量在游戏对象速度高于0.5f的每一帧中都停留在0,所以我不想在每一帧重置它,而是想在低于0.5f时启动计时器

    if (speed >= 0.5f)
    {
        t = 0;
    }

    t = t + Time.deltaTime;

您可以使用bool值来保存性能

public static bool isTimerMoving = false;

public void Update()
{
    if (speed < 0.5f)
    {
        t = t + Time.deltaTime;
        isTimerMoving = true;
    }
    else if (isTimerMoving) {
        t = 0;
        isTimerMoving = false;
    }
}
公共静态bool isTimerMoving=false;
公共无效更新()
{
如果(速度<0.5f)
{
t=t+Time.deltaTime;
isTimerMoving=true;
}
else if(正在移动){
t=0;
isTimerMoving=false;
}
}
当速度达到
0.5f
时,此代码重置计时器。如果您只想暂停计时器,可以从中删除
t=0


p.S.使用
否实际上在测试后效果很好:)谢谢“p.S.使用>或<比使用=.快不了多少,但我喜欢保持效率;)”[需要引用]@是的,实际上我的陈述太宽泛了。在
int
或任何其他整数类型的情况下,这是不正确的,因为编译器应在将
X>=2
更改为
X>1
时对其进行优化,但如果您与
浮点数
或类似值进行比较,
=
执行
=
检查和
检查。这是因为如果你试图优化它:
X>=2
,你会得到类似于
X>1.9999999999999
,进入无穷大,这不应该起作用。这来自我自己的推断,但我后来在视频中也有人提到这一点。不幸的是,我不记得是哪段视频了。另外,在网上搜索之后,除了整数优化的例子(没有关于浮点数之类的话题)之外,我找不到更多关于这个主题的内容,但如果你发现了其他证明,请分享。我还将发布一个问题,看看我是否能对该主题有进一步的了解。无需打开一个新问题->