如何避免切换场景时重复创建ui

游戏中有多个scene,在切换的时候如果重新创建UI,则会有比较长的停顿时间。所以我的做法是在游戏最开始的加载所有的UI,并放在一个CCDictionary里。

例如有两个scene,分别称为scene1和scene2,两个的初始化ui的代码基本相同。都是COCOUISYSTEM->resetSystem(this); 然后COCOUISYSTEM->getCurScene()->addWidget(widget) 。这里的widget是一开始放在CCDictionary里的。

现在的问题是:当我切换场景的时候,我发现这个widget的引用计数变成了很大的负数。

不知道其他人是如何处理这个问题,避免反复创建UI。

大概知道原因了,在resetsystem的时候,removeAllChildrenAndCleanUp里做了delete child;