-
UnLua::GLuaSrcRelativePathLua源码文件相对于Content目录的相对路径 -
UnLua::GLuaSrcFullPathLua源码文件所在的绝对路径 -
FLuaContext::GLuaCxt全局Lua上下文
命名空间:UnLua
-
Call调用某个全局function -
CallTableFunc调用全局table里的某个function -
Get从Lua堆栈的某个索引位置上获取指定类型的数据 -
Push/ PushXXX 向Lua堆栈中压入一个指定类型的数据 -
IsType判断Lua堆栈上指定索引位置上的对象类型 -
CreateState从GLuaCxt创建一个lua_State -
GetState获取GLuaCxt中的lua_State -
Startup启动UnLua环境 -
Shutdown停止UnLua环境 -
LoadFile从指定相对路径加载一个Lua文件,但不运行 -
RunFile从指定相对路径运行一个Lua文件 -
LoadChunk加载一个Lua Chunk,但不运行 -
RunChunk运行指定的Lua Chunk -
ReportLuaCallError报告Lua错误,如果注册了自定义错误处理委托则会仅执行委托,否则使用UnLua默认的UE_LOG输出 -
GetStackVariables获取当前堆栈上所有相关的变量、upvalue信息 -
GetLuaCallStack获取当前Lua调用栈的字符串
FUnLuaDelegates
-
OnLuaStateCreated当一个Lua虚拟机被创建出来时候触发,可以拿到其对应的lua_State -
OnLuaContextInitialized当FLuaContext初始化完成后触发 -
OnPreLuaContextCleanup当FLuaContext开始回收清理前触发 -
OnPostLuaContextCleanup当FLuaContext完成回收清理后触发 -
OnPreStaticallyExport当FLuaContext开始向lua_State注册静态导出的类型之前触发 -
OnObjectBinded当某个UObject和Lua绑定时触发 -
OnObjectUnbinded当某个UObject的Lua绑定被解绑时触发 -
ReportLuaCallError支持注册自定义Lua报错处理委托到UnLua,当Lua报错时会调用这个委托 -
ConfigureLuaGC支持注册自定义LuaGC配置委托到UnLua,覆盖UnLua默认传递给lua_gc的参数 -
LoadLuaFile支持注册自定义的Lua文件加载器委托到UnLua,实现自定义Lua文件加载机制
UUnLuaInterfaceUnLua的核心接口,用来标记和识别需要绑定到Lua的对象
-
FLuaContext封装了整个UnLua运行环境上下文 -
FLuaIndex对Lua堆栈索引的简单封装 -
FLuaTable对Lua侧table数据类型的封装,提供类似Lua中"[]"的访问机制,也支持调用指定function -
FLuaValue对Lua各种值类型的封装 -
FLuaFunction对Lua侧function类型的封装,提供获取全局或指定table内的function并调用的能力 -
FLuaRetValues对从Lua侧的返回值的封装 -
FCheckStack用于辅助检测Lua堆栈平衡 -
FAutoStack用于自动恢复Lua堆栈索引 -
FExportedEnum提供向Lua侧注册导出枚举的接口
UE仅当WITH_UE4_NAMESPACE开关启用时存在,作为访问C++侧类的根对象。当开关禁用时,访问C++可以直接通过_G作为根对象来访问。类型是用到了才会注册到Lua,因此不必担心一次性加载过多导致的性能问题
-
RegisterEnum手动注册一个枚举到Lua -
RegisterClass手动注册一个类到Lua -
GetUProperty获取某个UObject上的UProperty -
SetUProperty设置某个UObject的UProperty为指定值 -
LoadObject加载一个UObject, 相当于:UObject.Load("/Game/Core/Blueprints/AI/BehaviorTree_Enemy.BehaviorTree_Enemy") -
LoadClass加载一个UClass, 相当于:UClass.Load("/Game/Core/Blueprints/AICharacter.AICharacter_C") -
NewObject根据指定的Class、Outer(可选)、Name(可选), 创建一个UObject -
UEPrint是UE_LOG的包装,也会使用UKismetSystemLibrary::PrintString输出
Initialize当任意对象被绑定到Lua时,都会调用这个初始化函数
-
Bind绑定一个回调到当前FScriptDelegate实例上。 -
Unbind从当前FScriptDelegate实例上解绑回调。 -
Execute手动执行FScriptDelegate所有回调。
一旦 require "Unlua" 后,会产生如下全局函数:
-
Class创建一个"类"的table,模仿OOP的概念提供封装、继承的机制 -
print使用UEPrint覆盖Lua原生print
以下宏定义可通过 UnLua.Build.cs 修改:
-
AUTO_UNLUA_STARTUP是否自动启动UnLua环境,默认启用。 -
WITH_UE4_NAMESPACE是否提供一个统一的UE命名空间table作为对引擎侧类型的访问入口,默认启用。 -
SUPPORTS_RPC_CALL是否提供对_RPC远程方法支持,默认启用。 -
SUPPORTS_COMMANDLET是否提供在commandlet环境下的UnLua支持,默认启用。 -
ENABLE_TYPE_CHECK是否启用类型检测,帮助在UFunction调用时进行参数类型合法性检测,默认启用。 -
UNLUA_ENABLE_DEBUG是否输出UnLua详细的调试日志,默认禁用。