【BUG】1.9.1版本动画编辑器bug

  • Creator 版本:1.9.1

  • 目标平台:

  • 详细报错信息,包含调用堆栈:
    Should not add cc.Sprite to a node which size is already used by its other component.
    at Object.errorID (/Applications/CocosCreator.app/Contents/Resources/engine/CCDebugger.js:343:18)
    at cc_Sprite._registSizeProvider (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/components/CCSGComponent.js:94:20)
    at cc_Sprite.__preload (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/components/CCRendererUnderSG.js:61:14)
    at cc_Sprite.Sprite.__preload (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/components/CCSprite.js:629:14)
    at call__preloadInTryCatch (eval at misc.tryCatchFunctor_EDITOR (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/utils/misc.js:1:1), :5:24)
    at CCClass._invoke (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/component-scheduler.js:233:21)
    at CCClass.invoke (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/node-activator.js:65:14)
    at CCClass.activateNode (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/node-activator.js:225:26)
    at cc_Node.set [as active] (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/utils/base-node.js:298:56)

Error: child already added. It can’t be added again
at call__preloadInTryCatch (eval at misc.tryCatchFunctor_EDITOR (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/utils/misc.js:1:1), :8:20)
at CCClass._invoke (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/component-scheduler.js:233:21)
at CCClass.invoke (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/node-activator.js:65:14)
at CCClass.activateNode (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/node-activator.js:225:26)
at cc_Node.set [as active] (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/core/utils/base-node.js:298:56)
at cc_DynamicAnimCurve.sample (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/animation/animation-curves.js:212:32)
at AnimationState.proto.sample (/Applications/CocosCreator.app/Contents/Resources/engine/cocos2d/animation/animation-state.js:367:15)
at Object._changeCurrentClip (/Applications/CocosCreator.app/Contents/Resources/app.asar/editor/page/scene-utils/anim-utils.js:1:3114)
at _queue.Async.queue (/Applications/CocosCreator.app/Contents/Resources/app.asar/editor/page/scene-utils/tasks.js:1:551)

  • 重现方式:
    我的工程中有个prefab,结构如下:

    Turn Animation Node绑定了一个Animation:

在未报错的时候,Energy Sprite 节点下面是有一个Sprite:

当对Turn Animation Node 动画编辑器编辑按钮点击3下(也就是编辑、取消编辑、再编辑)就会报错:

报错信息就是上面的信息,直接影响是把Energy Sprite中的Sprite直接给我删了:

  • 之前哪个版本是正常的 :不知道

  • 编辑器操作系统 :MacOS

  • 编辑器之前是否有其它报错 :没有

  • 出现概率:我的工程下当前操作100%触发,已经无法继续进行动画编辑。

  • 额外线索:

你好,这个问题新版本已经修复啦,是因为 node 上一个 flag 标记为错误的被还原造成的。