c# - 我想在一个事件上创建一个计时器/秒表
问题描述
我有一个运行良好的代码,但我认为如果我继续遵循相同的策略来做所有相同的事情,它会无缘无故地超载处理器
我有一个代表时间的变量,并且这个变量在游戏对象的速度高于 0.5f 的每一帧中都为 0,所以我不想在每一帧都重置它,而是在它低于 0.5f 时启动计时器
if (speed >= 0.5f)
{
t = 0;
}
t = t + Time.deltaTime;
解决方案
您可以使用布尔值来节省性能。
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;
}
}
每当速度达到 时,此代码都会重置计时器0.5f
。如果您只想暂停计时器,您可以从中删除t = 0
。
PS 使用>
or<
比使用<=
or更快>=
。不是很多,但我喜欢保持高效;)
编辑:在提出问题后,回复表明该陈述是错误的,我很抱歉。
推荐阅读
- python - 你能用 Swift 直接使用 python 制作的 tensorflow 保存模型吗?
- github - 我无法从 Coda 2 将多个文件推送到 Github
- perl - 如何在 Perl 中创建全局可用的函数?
- python - Flask 如何流式传输数据
- javascript - 使用鼠标旋转矩形
- r - R:查找大于或等于不同数据框中列的行值的数据框列中的最小值
- java - 使用 Apache PDFBox 从 PDF 文件中截取屏幕截图
- node.js - 过于严格的 ES6 linting 设置会导致 VueJS 服务器崩溃吗?
- url - Google 应用程序脚本,onclick 和 href 之间的优先级
- python - 为什么我的数据在图表中间被挤压?