Lua文件加载
大纲
文件加载的接口
文件的使用
文件加载的接口
LuaState->setLoadFileDelegate(&LuaFileLoader);
setLoadFileDelegate是slua提供的修改lua执行require加载时的接口,(这里要说明一下,只有require才有效果哦!)
一下是简单的loader实现
TArray<uint8> ULuaMgr::LuaFileLoader(const char* fn, FString& filepath)
{
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
...
编译器的整体过程简述
分词--》 一句话代码 切分成 Tokens
Token 词法单元 --》 <token-name, attribute-value>
算术器:1 + 1 - 2 + 4 = 4; (1 + 1) * 2 = 4; 1 *+ 1 = Error
编译器的整体过程简述
大纲
编译器是什么
编译器的处理过程
头文件展开
汇编文件
二进制文件
Linking
解释器是什么
编译器是什么
编译器就是一个软件,对开发者写好的文本文件进行一系列流程的处理,然后输出给机器执行的程序!
编译器的处理过程
这里说的是编译器将代码处理成执行文件的简要过程,并不是说编译器能做什么,毕竟编译器能做得事情还是有很多的;比如在编译之前dump一下类的memory layout之类的!
下文说的是以c++的编译过程做一个大致的说明!
头文件展开
汇编文件
二进制...
unreal下的多module创建
在默认的情况下,unreal中创建的plugin还是项目中,基本都是只有一个module,但是有时候我们不可能吧什么都放在一个module中!所以就有了对多module的需求
在已有的plugin中,
XXX.uplugin文件添加
"Modules": [
...
{
"Name": "名称",
"Type": "Editor",
"LoadingPhase": "Default"
}
]
如果是项目工程的话,就在XXXX.uproject中添加以上形式的代码。
创建build.cs
在plugin或者在项目工程的Source目录下,创建和module同名的目录(我这里使用的是MyEditorTools)!
plugin类似!...
LuaState(slua-unreal)
大纲
简述LuaState
LuaState的创建和使用
简述LuaState
luastate是可见的lua vm实例,在luastate上还有一层globalstate的,luastate之间是存在环境隔离的,只有少部分是可以共享的;以下是luastate的结构
在上面的代码中,能看到一个比较重要的点:
共享的global_State
通常在lua的使用中,一般而言一个thread使用的是一个lua state,而lua state之间的数据共享,除非你有其他的思路,要不然基本都比较麻烦;目前知道的是skynet是改过后,才实现luastate间通信的!
LuaState的创建和使用
这里只说slua-unreal中的luastate方面的!...
159 post articles, 20 pages.