大纲
- 文件加载的接口
- 文件的使用
文件加载的接口
LuaState->setLoadFileDelegate(&LuaFileLoader);
setLoadFileDelegate
是slua提供的修改lua
执行require
加载时的接口,(这里要说明一下,只有require
才有效果哦!)
一下是简单的loader
实现
TArray<uint8> ULuaMgr::LuaFileLoader(const char* fn, FString& filepath)
{
IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
FString path = FPaths::ProjectContentDir();
path = FPaths::Combine(path, TEXT("/Lua"));
FString filename = UTF8_TO_TCHAR(fn);
path /= filename.Replace(TEXT("."), TEXT("/"));
TArray<uint8> Content;
TArray<FString> luaExts = { UTF8_TO_TCHAR(".lua"), UTF8_TO_TCHAR(".luac") };
for (auto& it : luaExts) {
auto fullPath = path + *it;
FFileHelper::LoadFileToArray(Content, *fullPath);
if (Content.Num() > 0) {
filepath = fullPath;
return MoveTemp(Content);
}
}
return MoveTemp(Content);
}
文件的使用
要执行文件就简单多了,使用doFile
函数就可以!
luaState->doFile("Launch");
或者通过
doString('require('luaFileName')')
来启动!
PREVIOUS编译器的整体过程简述
NEXTLua使用UE内置类型