大纲
- 简述LuaState
- LuaState的创建和使用
简述LuaState
luastate是可见的lua vm实例,在luastate上还有一层globalstate的,luastate之间是存在环境隔离的,只有少部分是可以共享的;以下是luastate的结构

在上面的代码中,能看到一个比较重要的点:
- 共享的
global_State
通常在lua的使用中,一般而言一个thread使用的是一个lua state,而lua state之间的数据共享,除非你有其他的思路,要不然基本都比较麻烦;目前知道的是skynet是改过后,才实现luastate间通信的!
LuaState的创建和使用
这里只说slua-unreal中的luastate方面的!
- LuaState的创建
luaState = new NS_SLUA::LuaState("MainState", gameinstance);
这里的GameInstance是必须的,MainState指的是当前创建的luastate的名称。slua-unreal一般是建议在游戏的GameInstance中继承LuaState,我这里仅仅是说明,并不是一定要这样!
上面创建完成luastate后,还需要对luastate进行初始化和一些选择性的处理!
luaState->init()
到这里,luastate的简单创建已经完成了!
- LuaState的使用
前文的luastate已经创建完成了,那么要如何使用?这里先简单说一下:
luaState->doString("printf('hello world')")
直接通过dostring方法就能使用了!
还有其他的方式,比如调用lua文件等,这里就不做说明,会在其他文档作说明!
PREVIOUSunreal 脚本
NEXTunreal自定义资产导入