puerts
puerts copied to clipboard
[Unreal]希望UE中导出的类型的constructor.name可以包含正确的类型名
detail | 详细描述
从UE导出的类,目前其实例的constructor.name是空 希望UE中导出的类型的constructor.name可以包含正确的类型名
涉及倒quickjs版本的同步修改,暂时改不了那么快,你用的是v8可以先在这两个地方加下: 在这里:https://github.com/Tencent/puerts/blob/master/unreal/Puerts/Source/JsEnv/Private/JsEnvImpl.cpp#L2225 还有这里:https://github.com/Tencent/puerts/blob/master/unreal/Puerts/Source/JsEnv/Private/CppObjectMapper.cpp#L176 添加这么一行:
Template->SetClassName(FV8Utils::ToV8String(Isolate, InStruct->GetName()));
JsEnvImpl.cpp中 我加到2260行了 2225这里不行 Template还没有被赋值
代码更新导致行数变后而已
你好,我发现一个问题
我在TS中定义一个类 继承自一个UE中导出的类
当我在TS中使用MakeUClass时,在FJsEnvImpl::GetTemplateOfClass中看到InStruct的Name是正确的类名加上“_C0”.请问这怎么解决。
正确的类名加上“_C0”.
这就是UE的潜规则。如果前面的蓝图的名字被占用了,就会这么加个后缀。
上述问题,我加了个判断,如果是TS中创建的类,就不修改Template中的classname,目前逻辑一切正常
if(!Cast<UJSGeneratedClass>(InStruct)){
Template->SetClassName(FV8Utils::ToV8String(Isolate, InStruct->GetName()));
}