UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理
Posted 珞珈大胖强TURBO
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理相关的知识,希望对你有一定的参考价值。
非UE4反射支持的静态类导出给Lua使用
前面的交互类都是UE4中支持反射的类,那么如果是不支持反射的类,怎么导出给Lua使用呢?答案就是C++静态注册
C++静态注册到Lua是一个强大的功能,UnLua使用类模板,抽象出了一套通用的C++静态注册的宏定义。这里只用一个简单的例子来讲述,其中的原理大同小异。
看看Unlua的例子
struct FTutorialObject
protected:
FString Name;
public:
FTutorialObject();
explicit FTutorialObject(const FString& Name)
:Name(Name)
FString GetTitle() const
return FString::Printf(TEXT("《%s》"), *Name);
FString ToString() const
return GetTitle();
;
FTutorialObject::FTutorialObject()
static int32 FTutorialObject_New(lua_State* L)
const auto NumParams = lua_gettop(L);
if (NumParams != 2)
UNLUA_LOGERROR(L, LogUnLua, Log, TEXT("%s: Invalid parameters!"), ANSI_TO_TCHAR(__FUNCTION__));
return 0;
const char* NameC
以上是关于UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理的主要内容,如果未能解决你的问题,请参考以下文章
UE4 Unlua源码解析11 - 非UE4反射支持的静态类导出给Lua使用原理
UE4 Unlua源码解析5 - FLuaContext内重要方法逐行解释