两个不同场景的常驻节点 Native下setLocalZOrder无效,疑似bug

最初发现这个问题是 V1.4.2版本。目前1.7.0 rc1还存在。

两个节点分别在两个不同场景中常驻的。

场景一
cc.game.addPersistRootNode(this.node1);
this.node1.setLocalZOrder(998);

场景二
cc.game.addPersistRootNode(this.node2);
this.node2.setLocalZOrder(999);


场景二 node2 节点是个空节点,其子节点是动态添加的

某些情况下node1节点会覆盖在node2的子节点上面。
设置的LocalZOrder是没有用的

需要说的是,这个问题只发生在Android Native下(iOS没测试),完全同样的操作在Win10 + chrome浏览器上没问题。

因此,感觉是bug!

@jare 这个问题我之前也反映过,还请重视下,因为确实很久了,我游戏中的两个重要组件用的常驻节点,现在游戏快上线了,还请帮忙看看啊。

@jare @dumganhar

热乎的 DEMO来啦,无Demo无真相,必须是个bug!:

请在 安卓 Native下操作,web下没有问题

说明:
Node1 在场景1中常驻,设置的LocalZOrder为999,Node1是空节点,点击“动态添加Node1子节点”会添加其子节点
Node2 在场景2中常驻,设置的LocalZOrder为998

操作步骤:

  1. 场景1 点击“To Scene2” 进入场景2
  2. 场景2 点击“To Scene1” 进入场景1
  3. 再次,在 场景1 点击“To Scene2” 进入场景2
  4. 场景2 点击“To Scene1” 进入场景1
  5. 点击“动态添加Node1子节点”,会发现如下问题:

Win 10 + Chrome下没有问题,正常应该是这样的:

NewProject.rar (138.0 KB)

大佬们发挥神威吧~~~~~~

别沉。。。。。。。。。。。。。。。。

谢谢你的反馈,你反馈的问题应该是存在的。不过我们最近在实现新的渲染器,在那以前我们暂时没人力去修复这个问题了。建议先手动处理下。

能给个手动处理的思路吗?

试试添加后手动设置一次 local z order

已经试过再设置一次 local z order了,没有用。

@Knox 麻烦尝试验证一下,上面有项目用例

已修复,县相关 PR:

https://github.com/cocos-creator/engine/pull/2155

thanks~!!!

@Knox
验证了没有用啊~~~~

原生平台还有待修复

不好意思,是我搞错了,应该已经没问题了,刚才可能用的是旧包测试的。。。。