[UE] Bug: Mixin实例持有的js实例丢失了
Closed this issue · 10 comments
operatorkai commented
前置阅读 | Pre-reading
Puer的版本 | Puer Version
1.0.6
UE的版本 | UE Version
UE 5.3.2
发生在哪个平台 | Platform
win
错误信息 | Error Message
蓝图BP_Char 派生自 BP_CharBase
代码:
BP_CharBase_ts是BP_CharBase的mixin实现,持有一个js对象
问题重现 | Bug reproduce
https://github.com/operatorkai/puerts_unreal_demo_fork
修改Editor参数,独立进程,启动1个DS + 2Client
启动Play
PS: 只有1个角色 貌似没问题 运行1分钟也未报错,有第二个人就会出错
chexiongsheng commented
不好意思,回去过年了。
我稍后看。
operatorkai commented
新年好~ 多谢多谢
chexiongsheng commented
我试了下,只有“单进程下运行”去掉勾才会报错,其它设置相同不会报错。
operatorkai commented
本来是这样:分别启动独立编译出的 DS.exe 和 client.exe ,ds和client都会出现丢失实例
勾掉 单进程下运行 是模拟正常的多进程独立环境,上面的复现步骤是想着方便您做复现操作
chexiongsheng commented
定位原因是你mixin的是基类,指明objectTakeByNative的是基类。
但创建的对象是子类。按目前的设定基类的设置不会生效。
operatorkai commented
嗯 按照常规,基类会包含一些基础实现
那么 您建议是 这种情况可以添加支持 还是 换一种使用方式呢 【比如基类持有的通用logic实例就是在蓝图或cpp中 或 其他方式】
operatorkai commented
感觉是用法问题哈哈,基类的字段和函数,子类ts也不容易复用
不过针对这个用法,想了个办法:ts中的对象,主动记录到蓝图中持有一下 就可以
chexiongsheng commented
我考虑下是否添加支持
chexiongsheng commented
我加了,你更新试试
operatorkai commented
试了下,可以了~