Open finscn opened 2 months ago
我项目里引起这个错误的代码如下
const node = cc.instantiate(一个包含spine动画的预制体);
node.parent = 一个已经存在且没什么问题的父节点
const spine = node.getComponent(sp.Skeleton);
spine.enabled = false
// 一些其他无关紧要的代码
node.active = false
// 在其他地方, 其他帧里 激活 node
node.active = true; // 执行到这里时报错
后来经过摸索 我手动执行 spine组件的 _updateSkeletonData()
方法, 就不会报错了.
const node = cc.instantiate(一个包含spine动画的预制体);
node.parent = 一个已经存在且没什么问题的父节点
const spine = node.getComponent(sp.Skeleton);
spine._updateSkeletonData(); // 手动执行.
spine.enabled = false;
// 一些其他无关紧要的代码
node.active = false
// 在其他地方, 其他帧里 激活 node
node.active = true;
虽然这么做能解决我的问题, 但是需要手动执行 _updateSkeletonData 显然是不对的. 不知道真正的原因是什么.
貌似是 spine组件的 __preload() 方法调用时机不当引起的, 或者是 向wasm传参不对.
Cocos Creator version
3.8.3
System information
all
Issue description
完整错误如下:
使用的都是标准的api, 跟踪不到根本原因是什么.
Relevant error log output
No response
Steps to reproduce
如上
Minimal reproduction project
No response