在不带布尔条件的Update()中调用一次
Call once in Update() without boolean condition
这个问题与Unity3D c#以及AppGameKit c++有关。
是否建议使用布尔条件调用函数/语句一次,如下面的例子所示?
Unity3D c#
bool _call = false;
void Update()
{
if (!_call)
{
call = true;
// statements
}
}
c++首先分析bool _call = false;
void app::Loop(void)
{
if (!_call)
{
_call = true;
// statements
}
}
我问这个问题是因为以下原因:
我在Unity和AGK论坛上都读到,在更新每帧的Update()函数中使用if-else/switch条件应该尽可能少。
我很好奇是否有任何其他方式可以让语句/函数在Update()函数中被调用时只调用一次。如果没有,我可以让程序回到Start()/Begin()部分,而在Update()/Loop()函数中间有函数/语句在那里调用,一次。
1)每帧都有一个布尔条件不会对性能产生太大的影响。也就是说,将逻辑保持在最低限度是一个很好的实践,所以做这样的事情需要在设计方面有一个很好的理由。
2)脚本的执行可以重新启动。看看这个链接:OnEnable, Awake, Start order还有这个链接:Behaviour.enabled
1)我在我的游戏中使用这个,我没有问题,所以我不明白为什么这不能在你的游戏
2)你不能使程序进入Start(),它在使用该脚本的屏幕开始时被调用一次。
相关文章:
- 循环中的条件:为什么每次都调用strlen(),而vector.size()只调用一次
- 为什么 zlib 放气初始化调用一次不起作用?
- 什么是仅调用一次并调用参数的控制台应用
- 谷歌基准测试,如何只调用一次代码?
- Android JNI RegisterNatives:对所有内容调用一次,或者每个函数调用一次
- 系统调用:一次和多次,哪个更好?
- C++菱形问题 - 如何仅调用一次基方法
- 函数被多次执行,同时调用一次
- 只为NOT STATIC类的EACH对象调用一次方法
- 通过调用一次新运算符大容量分配对象
- Boost::asio::async_write,处理程序只调用一次
- 为什么析构函数被调用两次,而构造函数只被调用一次
- 强制子类实现并调用(一次)方法
- 等待中的谓词在循环中使用notify时只调用一次
- boost::future-是否保证wait_callback只被调用一次
- 为什么这个函数只被调用一次
- Qpid质子on_sendable只被调用一次
- 每次选择参数时调用一次的静态变量和函数
- 如何只执行一次方法代码,尽管每帧调用一次
- 在c++中调整vector大小时调用一次类构造函数