一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - js教程 - 如何在CocosCreator中利用常駐節點做圖層管理

如何在CocosCreator中利用常駐節點做圖層管理

2022-03-02 16:24「已注銷」 js教程

這篇文章主要介紹了如何在CocosCreator中利用常駐節點做圖層管理,這些技巧非常實用,希望同學們看完,回去可以試一下

CocosCreator版本:2.3.4

一般游戲都有圖層管理,比如

  • sceneLayer 場景層
  • panelLayer 彈框層
  • tipLayer   提示框層

cocos里的場景不是持久化的,每次切換都會自動destroy,如果在場景上放這些圖層,那么每個scene都要放一遍?然后再獲取,這樣很麻煩。

加載場景使用的是cc.director.loadScene,scene的容器node貌似是director上的一個nodeActivator

如何在CocosCreator中利用常駐節點做圖層管理

現在如果不考慮scene的容器或者cocos的頂層容器。我想一想兩種圖層管理的方法。

一、只有一個scene

整個游戲一個scene,就是游戲入口的scene,在這個scene上放sceneLayer等圖層的node,這個入口scene相當于egret和laya的stage。

然后所有場景scene和彈框模塊,都做成預制件prefab,每次顯示都addChild到入口scene的相應圖層上就行了。

如何在CocosCreator中利用常駐節點做圖層管理

 二、使用常駐節點

比如我在場景1,放置sceneLayer等圖層。為了方便顯示,我每個圖層加了個單色。

如何在CocosCreator中利用常駐節點做圖層管理

常駐節點必須在根節點下,也就是和canvas同級。把3個圖層設置為常駐節點。

onLoad(){
    cc.game.addPersistRootNode(cc.find("sceneLayer"));
    cc.game.addPersistRootNode(cc.find("panelLayer"));
    cc.game.addPersistRootNode(cc.find("tipLayer"));
}

然后切換場景,在新場景中,仍然可以顯示并獲取到sceneLayer等圖層。

如何在CocosCreator中利用常駐節點做圖層管理

onLoad(){
    console.log(cc.find("sceneLayer"));  //輸出sceneLayer的cc.Node
}

利用常駐節點,我們可以在入口場景中放置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;
    
}

在入口場景中設置常駐節點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中利用常駐節點做圖層管理的詳細內容,更多關于CocosCreator常駐節點做圖層管理的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/qq_43287088/article/details/107351609

延伸 · 閱讀

精彩推薦
  • js教程JavaScript實現拖動滑塊拼圖驗證功能(html5、canvas)

    JavaScript實現拖動滑塊拼圖驗證功能(html5、canvas)

    這篇文章主要介紹了JavaScript實現拖動滑塊拼圖驗證(html5、canvas),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值...

    人生行者11272022-02-19
  • js教程微信小程序學習之自定義滾動彈窗

    微信小程序學習之自定義滾動彈窗

    這篇文章主要給大家介紹了關于微信小程序學習之自定義滾動彈窗的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考...

    юноша9282021-12-15
  • js教程js簡單粗暴的發布訂閱示例代碼

    js簡單粗暴的發布訂閱示例代碼

    這篇文章主要給大家介紹了js簡單粗暴的發布訂閱的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要...

    威威威威vvvv6482022-01-06
  • js教程JS+CSS實現過渡特效

    JS+CSS實現過渡特效

    這篇文章主要為大家詳細介紹了JS+CSS實現過渡特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Dr_空山3662021-12-23
  • js教程JavaScript實現切換多張圖片

    JavaScript實現切換多張圖片

    這篇文章主要為大家詳細介紹了JavaScript實現切換多張圖片,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    是M11782022-01-10
  • js教程原生JS實現京東查看商品點擊放大

    原生JS實現京東查看商品點擊放大

    這篇文章主要為大家詳細介紹了原生JS實現京東查看商品點擊放大,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    A.香辣雞腿堡7312021-12-15
  • js教程three.js 實現露珠滴落動畫效果的示例代碼

    three.js 實現露珠滴落動畫效果的示例代碼

    這篇文章主要介紹了three.js 實現露珠滴落動畫效果的示例代碼,非常不錯,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下...

    稀土掘金11342022-01-24
  • js教程JS+CSS實現動態時鐘

    JS+CSS實現動態時鐘

    這篇文章主要為大家詳細介紹了JS+CSS實現動態時鐘,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    易點都不懶5092022-01-21
主站蜘蛛池模板: 日韩一级欧美一级一级国产 | 四虎新网址 | 动漫美女人物被黄漫在线看 | 日韩一级生活片 | 久久人妻熟女中文字幕AV蜜芽 | 国产成人看片免费视频观看 | 手机在线观看伦理片 | 幻女free性摘花第一次 | 亚洲午夜久久久久国产 | 九九精品视频在线观看 | 免费超级乱淫播放手机版 | 调教禽兽 | 国产精品夜夜爽张柏芝 | 办公室恋情在线 | 欧美精品v欧洲高清 | 亚洲香蕉综合在人在线视看 | 日本mv精品中文字幕 | 国产一区二区不卡 | 欧美人人干 | 精品视频网站 | 欧美亚洲免费 | 91夜夜人人揉人人捏人人添 | 国产精品成人一区二区 | 日本性生活免费看 | 网www天堂资源在线 王淑兰与铁柱全文免费阅读 | 色吧五月婷婷 | 欧美猛男同志video在线 | 日韩欧美在线看 | 国内精品91最新在线观看 | 男人的天堂视频 | 日韩毛片免费 | 欧美人禽杂交在线视频 | 国偷盗摄自产福利一区在线 | 欧美同志video 在线观看 | 深夜在线观看网站 | 欧美va在线观看 | 亚洲一区二区三区不卡在线播放 | 欧美a在线观看 | 国产青草视频在线观看免费影院 | 国产剧情麻豆刘玥视频 | 波多野结衣被绝伦强在线观看 |