gpt4 book ai didi

Lua 任务调度

转载 作者:行者123 更新时间:2023-12-04 18:53:24 27 4
gpt4 key购买 nike

我一直在为游戏编写一些脚本,这些脚本是用 Lua 编写的。游戏的要求之一是 lua 脚本中的 Update 方法(每帧调用)运行时间可能不超过大约 2-3 毫秒,如果它确实导致游戏挂起。

我用协程解决了这个问题,我所要做的就是调用 Multitasking.RunTask(SomeFunction) 然后任务作为协程运行,然后我必须在我的代码中分散 Multitasking.Yield(),它检查任务有多久一直在运行,如果超过 2 毫秒,它会暂停任务并在下一帧恢复它。这没关系,除了我必须在我的代码中到处散布 Multitasking.Yield() ,这真是一团糟。

理想情况下,我的代码在运行时间过长时会自动产生。那么,是否可以将 Lua 函数作为参数,然后一行一行地执行它(也许在 Lua 中解释 Lua,我知道这是可能的,但我怀疑如果你只有一个函数指针,这是可能的)?通过这种方式,我可以在每行之间自动检查运行时和产量(如有必要)。

编辑:: 明确地说,我正在修改游戏,这意味着我只能访问 Lua。不允许使用 C++ 技巧。

最佳答案

检查 lua_sethookDebug Interface .

关于Lua 任务调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2687526/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com