UE4 Unlua源码解析11 – 非UE4反射支持的静态类导出给Lua使用原理

  • Post author:
  • Post category:其他


非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* 



版权声明:本文为weixin_44739495原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。