很高兴看到 cocos 增加了这个属性.
我之前在自定义引擎中也增加了类似的属性.
不过 cocos 目前这个 _keepRenderData 的设计我觉得缺少了一些灵活性.
官方建议是 如果要修改 _keepRenderData , 在子类里去重写它
但是我在实际项目里 经常要在运行时 根据某些条件来动态的修改 某个cocos 内置的渲染对象.
伪代码如下:
const spin = this.node.getComponent(cc.sp.Skeleton)
if (满足条件A) {
let b = ....
// ... 一些逻辑
spine._keepRenderData = b;
} else {
spine._keepRenderData = true;
}
我不可能也没必要 仅仅为了去操作 _keepRenderData 属性 , 特意扩展一堆 cocos内置的渲染对象.
而且 _keepRenderData 还是 protected 的, 我即使扩展了 也难以在外部去操作
既然提供了这个功能, 不如把它变为一个 普通的 public 属性.
在说明里明确它作用就好. 何时去使用它交给开发者自己去决定就好.
很高兴看到 cocos 增加了这个属性.
我之前在自定义引擎中也增加了类似的属性.
不过 cocos 目前这个 _keepRenderData 的设计我觉得缺少了一些灵活性.
官方建议是 如果要修改 _keepRenderData , 在子类里去重写它
但是我在实际项目里 经常要在运行时 根据某些条件来动态的修改 某个cocos 内置的渲染对象.
伪代码如下:
我不可能也没必要 仅仅为了去操作 _keepRenderData 属性 , 特意扩展一堆 cocos内置的渲染对象.
而且 _keepRenderData 还是
protected的, 我即使扩展了 也难以在外部去操作既然提供了这个功能, 不如把它变为一个 普通的 public 属性.
在说明里明确它作用就好. 何时去使用它交给开发者自己去决定就好.