zIndex为1的canvas会被PersistNode遮挡

  • Creator 版本:2.0.8

  • 目标平台: 浏览器调试模式,微信开发工具,微信Android端都有出现,估计是全平台

  • 详细报错信息,包含调用堆栈:无报错

  • 重现方式:运行Demo

  • 出现概率:100%

  • 额外线索:由于属性设置面板不能设置node的zIndex,另写了一个组件,通过setter函数直接修改了CanvasNode的zIndex并序列化保存了,从另一个场景切换过来后,zIndex为1的Canvas依然被zIndex为0的PersistNode遮挡TestZIndex.zip (960.9 KB)

预期效果,zIndex为1的Canvas显示在PersistNode上方,即界面中展示一个字母B的图片
实际效果:显示在上方的是另一个场景中设置的PersistNode中的字母A的图片


实际是因为美术有一个需求,LoadingScene的背景需要播放一个复杂动画,然后切换到主场景。为了实现这个转场动画,就把背景节点包含整个动画设为了PersistNode,播放完后切换到游戏场景,背景保留下来置于游戏Canvas之下当新场景的背景。
实际实现后,发现PersistNode在切换场景后会默认被置于最顶层,与需求不符,就想到手动设置zIndex来改变层级,然后就发现了这个bug。
所以其实是需要一种手段,能使得PersisitNode不在切换场景后被置于顶部