https://docs.cocos.com/creator/manual/zh/scripting/scene-managing.html#通過常駐節點進行場景資源管理和參數傳遞
通過常駐節點進行場景資源管理和參數傳遞
引擎同時只會運行一個場景,當切換場景時,默認會將場景內所有節點和其他實例銷燬。如果我們需要用一個組件控制所有場景的加載,或在場景之間傳遞參數數據,就需要將該組件所在節點標記爲「常駐節點」,使它在場景切換時不被自動銷燬,常駐內存。我們使用以下接口:
cc.game.addPersistRootNode(myNode);
上面的接口會將 myNode
變爲常駐節點,這樣掛在上面的組件都可以在場景之間持續作用,我們可以用這樣的方法來儲存玩家信息,或下一個場景初始化時需要的各種數據。
如果要取消一個節點的常駐屬性:
cc.game.removePersistRootNode(myNode);
需要注意的是上面的 API 並不會立即銷燬指定節點,只是將節點還原爲可在場景切換時銷燬的節點。
-----------------------------------------------------------------------------------
要注意的是 : 在creator的引擎裏面只有根節點才能夠被成功的設置爲常駐節點,這一點貌似官方文檔是沒用提到的
-----------------------------------------------------------------------------------
creator 設置常駐節點
cc.game.addPersistRootNode(this.scrollview.node);
節點必須是根節點,如果不是可以將其父節點設爲scene;
this.scrollview.node.parent = cc.director.getScene();