我在cocos2dx网站和谷歌上搜索文档,但我无法找到任何文档。问题是,当我从cocostudio加载csb文件时,它会加载所有节点及其资源等...它会使纹理内存如此之高。我想知道是否有一种方法或解决方案只能从cocostudio的场景文件中加载选定的节点。
谢谢!
答案 0 :(得分:0)
您可以尝试获取.csb的组件:
auto node = CSLoader::createNode("MainScene/MainScene.csb");
node->getComponent("Star_GameButton")->setEnabled(false);
您需要组件的名称,即cocos Studio上的属性
答案 1 :(得分:0)
我遇到了同样的问题,它源于试图让一个场景包含你需要的一切。我决定将我的组件拆分为多个层,然后在需要时由它们自己的组件加载。
举个例子。在我的主场景中,我有一个库存托盘,一个建筑区域和一个自定义按钮面板。我将所有这些分成不同的层。 InventoryTray.csb,BuildingArea.csb,ButtonPanel.csb以及它们在代码中都是单独的,一个对象加载每个布局。总的来说,我的代码更易于维护,因为每个类只有几行代码。
这样我可以加载我的库存托盘,而不是加载我的按钮面板,直到用户需要"与它互动。花哨的暂停菜单也是如此,其中可能包含可能占用更多纹理内存的动画和资源。将其创建为单独的图层,并在需要时加载它。
我希望这有帮助,我从未发现cocostudio场景对我菜单系统以外的任何其他内容都有用,因为我构建的每个菜单场景(到目前为止)都是自包含的。