Tencent / sluaunreal

lua dev plugin for unreal engine 4 or 5

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cppbinding问题

jamessg opened this issue · comments

请问一些比较基础的问题,辛苦帮忙解答~对于已存在的c++类库,如果想引用,要如何使用cppbinding导出呢,比如一些方法返回的是string类型或者参数是string类型,或者map,或者其他自定义类型,但是看demo中都是FString,这种情况如何处理呢?

另一个问题是在使用EndDef时,什么情况下使用nullptr传入呢,对于已经存在的c++类库,是需要额外在写一个下面的方法来把构造交给lua吗
static LuaOwnedPtr create(int v) {
return new FooChild(v);
}

1、“比如一些方法返回的是string类型或者参数是string类型,或者map,或者其他自定义类型,但是看demo中都是FString,这种情况如何处理呢?”

这个就需要扩展LuaObject::push函数,把对应的模版完成
image

2、static LuaOwnedPtr create(int v) {
return new FooChild(v);
}

对于这个暂时没什么好办法,不过这个create函数不要求是类的函数,可以是这个类之外的一个static函数就行(避免一定要去扩展这个类)

2、static LuaOwnedPtr create(int v) { return new FooChild(v); }

对于这个暂时没什么好办法,不过这个create函数不要求是类的函数,可以是这个类之外的一个static函数就行(避免一定要去扩展这个类)

感谢回答,对于第二个问题,如果是类外的一个A类中的static create函数,在写EndDef是如下这样写吗
EndDef(Foo,&A::create)

另外,使用这种方式进行导出,如果导出的类和方法比较多,全部放入luaglobal,会不会存在性能问题呢