【发布时间】:2013-12-13 10:12:09
【问题描述】:
目前,在我的引擎中,每个实体都有自己的lua_State * 链接。实体基类有一个函数linkScript(const char *scriptPath),它将调用luaL_dofile(luaState, scriptPath)。所有这些工作都很好,但游戏仍然很小。我一直在阅读,我注意到我正在做的事情被认为是不好的做法。建议我有一个全局 lua_State * 并将所有函数加载到全局内存中。起初,我对自己说“好吧,够简单”,但很快我就遇到了一个问题:每个 Lua 文件都定义了自己的 init()、tick() 并应用了一些 EventHooks。如何共享全局 lua_State * 而不会每个脚本都覆盖之前脚本对这些函数的定义?这些函数在每一帧和/或每次触发事件时被调用。我需要能够区分每个脚本的实现。
【问题讨论】:
标签: c optimization lua game-engine