这个问题与Unity3D C#以及AppGameKit C ++有关。
建议使用布尔条件调用一次函数/语句,如下例所示?
Unity3D C#
bool _call = false;
void Update()
{
if (!_call)
{
call = true;
// statements
}
}
AGK C ++
bool _call = false;
void app::Loop(void)
{
if (!_call)
{
_call = true;
// statements
}
}
我之所以这样问是因为以下原因:
我已经在Unity以及AGK论坛上读过,在更新每个帧的Update()函数中,使用if-else / switch条件应该尽可能少。
我很好奇是否有任何其他方式可以在Update()函数中调用它们时只调用一次语句/函数。如果没有,我可以让程序返回到程序的Start()/ Begin()部分,同时在Update()/ Loop()函数的中间,让函数/语句在那里被调用一次。 / p>
答案 0 :(得分:1)
1)我在游戏中使用这个,我没有问题所以我不明白为什么这不可能在你的游戏中
2)你无法让程序转到Start(),它会在使用该脚本的屏幕的开头调用一次。
答案 1 :(得分:0)
1)每个帧都有一个布尔条件不会对性能产生很大影响。也就是说,将逻辑保持在最低限度是一种很好的做法,所以做这样的事情需要在设计方面有很好的理由。
2)可以重新启动脚本的执行。看看这个链接:OnEnable, Awake, Start order 这个链接在这里:Behaviour.enabled