如何做loading页面

我游戏里有多个场景,但切换场景时,手机上会比较卡,某场景内的组件比较多,所以想做个LOADING页面 将这些组件缓存起来,一直不释放,
看稳定似乎只有 常驻组件,
1,常驻组件只能在 场景的根节点生成,如果直接放到loading场景的根节点,整个loading场景就加载慢了,
2, 如果把这些节点做成预制体,在loading页面分步加载 这些预制体,
速度没问题了,但这些预制体必须放到 根节点 才能 常驻内存,
(我试过 把这些预制体放到 某个node上,但这个node随这场景关闭而释放了,再次用到的时候就找不到了)

按2 的办法应该可以,但预制体的位置就不太调,而且在需要用的场景,就看不到效果了,比较的不方便

我想问问大家,有没有什么好办法,或者有没有 场景能常驻,不被销毁!

是场景设置了自动释放资源才会这样吗,
貌似引擎不会自动释放预制体资源的。

思路有问题吧,如果想缓存,就自己做个资源管理器,把动态加载的预制缓存起来,场景切换就只会预加载场景文件,动态加载的资源只在第一次加载会慢一点,缓存之后就很快,至于什么时候释放,需要自己管理,一般不是特别大的游戏,直接单场景就ok了,资源全部动态加载

我通常的做法是,中小游戏一般是单场景,预制体放resources,loading的时候就loadRes一下,如果要更改数据,在onEnabled的时候就可以重新赋值。。
不知道这个做法是否合理

可以在初始场景就弄一个层级节点,把这个层级节点设置承常驻节点,需要加载loading的时候add child到对应的层级就可以了

这个我今天已经完成了,,做法如下
1.部分组件(一组组件)做成预制体,大概几个预制体吧!很常用的那几个。
2.做一个loading的场景,加载这几个预制体
3.使用的时候,把要用的 active= true,坐标,zIndex都又调了一边!
4.每个预制体上做一个JS用于逻辑更新。
5.当前的预制体上触发一个事件,可能影响或者调用其他预制体,或者组件的时候,比较麻烦,不能直接调用,要走事件通知,或者事件监听,还好,我与服务器交互比较多,每个预制体都相对独立。。。就算不独立,那就把那几个预知都放一起,那他们一坨就独立了!!!

反正是解决了,但不漂亮,感觉还这个应该有更好办法!

前提是
1。多场景,
2.场景上多组件,
3.加载比较耗时,
手机上差不多3秒钟左右,现在已经1秒以内了,可以接受了

呼唤一下引擎组!@大佬们, 给解决呗!

那你说的这个场景 加载就慢了。。相当于把要加载的资源都一次性在这个页面里加载了,然后常驻,这个加载卡顿是否可以接受? 我看不乐观啊!

没太明白你的意思,你说的资源是单指 图片,动画之类的,还是包括场景中用的 组件,预制体,组件组,之类的?
如果是第一种,动态,分步加载也还可以,
如果是第二种,那不都是 事先在场景上设置好的吗,然后切换场景,就都出现了,如何动态加载?

场景不会自动是否 预制体 这个我不知道啊?希望可以得到确切的说明。

其实没太明白你的意图!
如果只是想把常用的预制保留的话,这样的目的,按你的做法也和动态加载内存中的预制体没多少区别。
将常用的预制体预加载到缓存,切换场景的时候加载到新场景中,这会有和你的做法速度上的大区别吗?影响速度的就是首次加载预制件的时候吧?

小伙子加油,你还有很长的路要走,多看看大佬们的代码


场景这里有设置是否自动释放,
如果这里设置了,切换场景的时候才会释放里面的资源

你说的 资源管理, 动态加载, 和我的做法 没多大出路吧!
应该都差不多的做法吧!

之前 没注意这个功能,我研究一下!多谢啦!

我这个目前都是 自动释放资源, 官方稳定里说 建议主场景 不勾选,早看到就好了,浪费了三天啊!
现在也没办法测试了,以后有机会可以试试这个功能
还有延迟加载资源,多谢啦!

文档上似乎说的 资源 指,图片,声音,等
不知道 场景中大量的 组件 算不算, 还有 富文本,这种组件,

这一看就是做了项目才明白的思维,lz 新手后面经历完整项目就懂层主说的是啥了~ :rofl:

应该LoadingUI常驻就可以了。切换场景前显示,新场景加载完成后隐藏。

你这种方法,会导致,每次加载场景 都要loading。。。
用户很烦的!

如果目前没有更好的方法,可以用你的方法,然后拆分预制体,不要让单个预制体太大,因为加载预制体的时间是非线性增涨的。另外你可以尝试一下分帧加载,也是挺不错的锦上添花的方法。