如何在CocosCreator中利用常駐節(jié)點做圖層管理
CocosCreator版本:2.3.4
一般游戲都有圖層管理,比如
- sceneLayer 場景層
- panelLayer 彈框?qū)?/li>
- tipLayer 提示框?qū)?/li>
cocos里的場景不是持久化的,每次切換都會自動destroy,如果在場景上放這些圖層,那么每個scene都要放一遍?然后再獲取,這樣很麻煩。
加載場景使用的是cc.director.loadScene,scene的容器node貌似是director上的一個nodeActivator

現(xiàn)在如果不考慮scene的容器或者cocos的頂層容器。我想一想兩種圖層管理的方法。
一、只有一個scene
整個游戲一個scene,就是游戲入口的scene,在這個scene上放sceneLayer等圖層的node,這個入口scene相當(dāng)于egret和laya的stage。
然后所有場景scene和彈框模塊,都做成預(yù)制件prefab,每次顯示都addChild到入口scene的相應(yīng)圖層上就行了。

二、使用常駐節(jié)點
比如我在場景1,放置sceneLayer等圖層。為了方便顯示,我每個圖層加了個單色。

常駐節(jié)點必須在根節(jié)點下,也就是和canvas同級。把3個圖層設(shè)置為常駐節(jié)點。
onLoad(){
cc.game.addPersistRootNode(cc.find("sceneLayer"));
cc.game.addPersistRootNode(cc.find("panelLayer"));
cc.game.addPersistRootNode(cc.find("tipLayer"));
}
然后切換場景,在新場景中,仍然可以顯示并獲取到sceneLayer等圖層。

onLoad(){
console.log(cc.find("sceneLayer")); //輸出sceneLayer的cc.Node
}
利用常駐節(jié)點,我們可以在入口場景中放置sceneLayer等圖層。用圖層管理類保存引用。
三、最佳實踐
圖層管理類,單例
export default class LayerManager extends cc.Component {
private static instance:LayerManager;
public static ins():LayerManager{
if(this.instance == null){
this.instance = new LayerManager();
}
return this.instance;
}
public panelLayer:cc.Node;
public tipLayer:cc.Node;
}
在入口場景中設(shè)置常駐節(jié)點layer, 用圖層管理類保存引用。以備之后使用。
@ccclass
export default class Helloworld extends cc.Component {
onLoad(){
cc.game.addPersistRootNode(cc.find("sceneLayer"));
cc.game.addPersistRootNode(cc.find("panelLayer"));
cc.game.addPersistRootNode(cc.find("tipLayer"));
LayerManager.ins().panelLayer = cc.find("panelLayer");
LayerManager.ins().tipLayer = cc.find("tipLayer");
}
}
以上就是如何在CocosCreator中利用常駐節(jié)點做圖層管理的詳細內(nèi)容,更多關(guān)于CocosCreator常駐節(jié)點做圖層管理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript中的 attribute 和 jQuery中的 attr 方法淺析
這篇文章主要介紹了JavaScript中的 attribute 和 jQuery中的 attr 方法淺析,需要的朋友可以參考下2017-01-01
javascript 二維數(shù)組的實現(xiàn)與應(yīng)用
javascript沒有二維數(shù)組.所有自定義了一個數(shù)組類,下面是實例代碼,需要的朋友可以參考下。2010-03-03
微信開發(fā)相關(guān)功能之使用微信JS-SDK接口
這篇文章主要給大家介紹了關(guān)于微信開發(fā)相關(guān)功能之使用微信JS-SDK接口的相關(guān)資料,微信SDK是一套開發(fā)工具包,為開發(fā)者提供了許多API接口,使得開發(fā)一個微信公眾號變得更加簡單,需要的朋友可以參考下2023-12-12

