Tencent / sluaunreal

lua dev plugin for unreal engine 4 or 5

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

REG_EXTENSION_PROPERTY 使用无效

2453852330 opened this issue · comments

commented
// 头文件中定义

int32 BaseInt = 0;
// getter
const int32 & GetBaseInt() 
{
UE_LOG(LogTemp, Warning, TEXT("[CustomBindLuaActor->GetBaseInt]"));
return BaseInt;
}
// setter
void SetBaseInt(int32 InA)
{
UE_LOG(LogTemp, Warning, TEXT("[CustomBindLuaActor->SetBaseInt]In Value is : %d"),InA);
BaseInt = InA;
}

// 构造函数中注册属性
ACustomBindLuaActor::ACustomBindLuaActor()
{
    using namespace NS_SLUA;
REG_EXTENSION_PROPERTY(ACustomBindLuaActor,"BaseInt",&ACustomBindLuaActor::GetBaseInt,&ACustomBindLuaActor::SetBaseInt);
}
-- lua 中使用
self.BaseInt = math.random(0,100)
print("change the BaseInt value to :",self.BaseInt)

lua中的 BaseInt 并不是注册的 BaseInt ; 是注册扩展属性无效,还是使用方法不对 ?

你可以在 LuaExtensionMethod.cpp 文件内的init函数里面去执行REG_EXTENSION_PROPERTY

commented

你可以在 LuaExtensionMethod.cpp 文件内的init函数里面去执行REG_EXTENSION_PROPERTY

只能在这里注册吗,我看示例可以构造时注册; 注册的函数是可以执行的,属性不行

推荐在lua虚拟机init的时候进行注册。构造函数里面注册并不推荐,因为构造函数在这个周期不止执行一次

commented

推荐在lua虚拟机init的时候进行注册。构造函数里面注册并不推荐,因为构造函数在这个周期不止执行一次

好的,谢谢