这个我当然知道。
如果一共有3000个场景,三个tab,对应3个栈,每个栈分别push出1000个场景。每个场景非常大。那你就不可能全部都载入,然后切换active,那内存就爆了。
如果scene这层不支持,那只能把scene做成prefab。push scene相当于载入prefab.但是这样的结构,就相当于只有一个scene,不用cocos的ui框架,没有onload start回调。做起来不方便。
我重新讲一下我的需求,三个tab对应三个栈。每个栈当前的场景是瞬切的。push一个scene,之前的scene释放,但是关键数据被保存。这样pop的时候我就知道返回那个scene。所以简单的说,一个栈就永远保存一个scene,3个栈就是3个scene。不同栈之间可以瞬切。栈内的scene,push pop就需要重新加载。内存最多占用3个场景的内存。
这个结构如果不能在scene这个层级实现,那就只能从头到尾就一个scene,然后把原先的所有scene做成prefab来实现。这样很不好。
cocos的显示本身就是iOS controller /android activity 里面封装出一套ui。我又再scene里面再封装出一套我自己切换场景用的ui。用引擎就是为了方便,不要自己造轮子啊。
之前cocos - iphone我就是在scene这层实现的。