将Lua脚本加载到以filename命名的表中

Rob*_*odd 2 c c# c++ lua

我使用luaL_loadfile然后lua_pcall从我的游戏加载脚本,并想知道如果不是将它们加载到全局表中,我可以将它们加载到以其文件名命名的表中吗?

例如:

我有一个名为"Foo.lua"的文件,其中包含:

function DoSomething()
    --something
end
Run Code Online (Sandbox Code Playgroud)

加载后我希望能够访问它:

Foo.DoSomething()
Run Code Online (Sandbox Code Playgroud)

谢谢!

lhf*_*lhf 6

尝试这样的事情.不要忘记添加错误检查...

lua_newtable(L);
lua_setglobal(L,filename);
luaL_loadfile(L,filename);
lua_getglobal(L,filename);
lua_setfenv(L,-2);
lua_pcall(L,...);
Run Code Online (Sandbox Code Playgroud)