我正在使用 LuaBind 在我的游戏中实现 Lua 脚本,我不清楚的一件事是在游戏中重新加载脚本的后勤工作。
目前,使用 LuaBind C++ 类luabind::object
,我将对 Lua 回调的引用直接保存在使用它们的类中。然后我可以使用luabind::call_function
该对象从 C++ 代码中调用 Lua 代码。
我还没有对此进行测试,但我的假设是,如果我重新加载脚本,那么所有函数都将被重新定义,但对旧函数的引用仍将以luabind::object
C++ 代码所持有的形式存在。我希望能够将旧的换成新的,而不必为游戏中的每个脚本挂钩手动管理它。
如何最好地改变这一点,使过程有效?
我的第一个想法是不要直接保存对函数的引用,而是可能保存函数名,并在每次我们想调用它时按名称获取函数。我正在寻找更好的想法!