关于常驻节点是否会被重复加载

场景中的某个节点被设置为常驻节点

cc.game.addPersistRootNode(myNode);

那么这个场景反复加载时,这个节点会被加载多次吗?

常驻根节点,根,根,根,
这样的话 是不在canvas下的

那么在用 SafeArea 组件 做原生安卓,ios开发时

这些 常驻根节点 怎么处理呀?

不会的。放心吧

addPersistRootNode: function (node) {

    if (!cc.Node.isNode(node) || !node.uuid) {

        cc.warnID(3800);

        return;

    }

    var id = node.uuid;

    if (!this._persistRootNodes[id]) {

        var scene = cc.director._scene;

        if (cc.isValid(scene)) {

            if (!node.parent) {

                node.parent = scene;

            }

            else if ( !(node.parent instanceof cc.Scene) ) {

                cc.warnID(3801);

                return;

            }

            else if (node.parent !== scene) {

                cc.warnID(3802);

                return;

            }

        }

        this._persistRootNodes[id] = node;

        node._persistNode = true;

        cc.assetManager._releaseManager._addPersistNodeRef(node);

    }

},

只要有Canvas的地方都需要挂SafeArea

可是 常驻跟节点 不在 canvas下 ,

切换场景的时候,是先保留常驻节点,场景切换后再挂上去

至于常驻节点上挂的脚本,是否被多次 onLoad ,你放心,不会的

多谢啦!需要五个字

是每次切换场景时都把 节点从canvas移除,挂到根节点再 cc.game.addPersistRootNode 一下吗?
好像没有事件知道场景切换后再把它挂回新场景的Canvas里啊?

我都是 find到 常驻节点,然后指定他的parent为当前场景canvas下的某个node上