cocos2d-x cloader如何只加载选定的节点

cocos2d-x CSLoader how to load selected nodes only

本文关键字:节点 加载 cloader cocos2d-x      更新时间:2023-10-16

我在cocos2dx网站和谷歌上搜索文档,但我找不到任何。问题是,当我从cocostudio加载csb文件时,它会加载所有节点及其资源等…它使纹理记忆非常高。我想知道是否有一种方法或解决方案可以从cocostudio的场景文件中只加载选定的节点。

谢谢!

我也遇到过同样的问题,它源于试图让一个场景包含你需要的所有内容。我决定将我的组件分成几层,然后在需要时由它们自己的组件加载。

为例。在我的主场景中,我有一个库存托盘,一个建筑区域和一个自定义按钮面板。我把这些都分成了不同的图层。InventoryTray。csb BuildingArea。csb ButtonPanel。CSB,并让它们在代码中分开,一个对象来加载每个布局。总的来说,我的代码更容易维护,因为每个类只有几行代码。

这样我就可以加载我的库存托盘,而不是加载我的按钮面板,直到用户"需要"与之交互。这同样适用于华丽的暂停菜单,它可能包含动画和占用更多纹理内存的资源。创建它作为一个单独的图层,并在需要时加载它。

我希望这能有所帮助,我从来没有发现cocostudio场景有用,除了我的菜单系统,因为我已经建立的每个菜单场景(到目前为止)都是自包含的。

你可以尝试获取。csb的一个组件:

auto node = CSLoader::createNode("MainScene/MainScene.csb");
node->getComponent("Star_GameButton")->setEnabled(false);

你需要你的组件的名称,那是在cocos Studio的属性