一般预制体是提前loading界面加载好,还是用到的时候再加载?
视乎业务需求:
- 你要秒开,就需要提前加载好,甚至放到界面中
- 可以等一下,那么你就可以用到的时候加载好
需要秒开,但是loading界面又想加载时间短一点
…鱼和熊掌不可兼得
秒开的话,你甚至不能用分帧加载、可视区域渲染等等
甚至你还需要在loading 的时候,提前离屏渲染
- 提前 load 好 prefab
- 将 prefab 实例化为节点
- 并且 addParent
- 并且 setPosition 到屏幕外渲染
而这个过程所需要用到的时间,还属于 loading 时间
需要显示的时候,只有 setPosition 回来到屏幕中,才能真正意义上达到秒开
通过其他方式的隐藏与显示,实际可能都会有小卡顿,比如:
- active = true/false
- setParent/removeFromParent
- opacity = 0/255
- …
2赞
哦哦,其实也并不是这么精细的秒开,其实就是想把之前全部放在resource里面加载的动态资源音效,prefab和配置文件;这样加载时间占用太多了。
打算单独拿出来加载,但是分细一点的话:就是大一点的prefab如果是用到的时候加载导致界面需要等待一会才能打开;
loading界面只加载加载主界面的资源就行了,这样很快,等主界面渲染完成之后,在暗地里偷偷预加载一些窗口等资源。可以设置时间,例如每0.5秒加载一个prefab,这样不容易阻塞。
主要看你的运用场景,如果场景加载的元素比较多,可以提前加载。如果加载的元素很少,最好还是用到得时候再加载,这样内存消耗好点。当然,如果你有精准的加载进度计划表,就按照进度表来执行最好。
其实这个问题很难有个是与非的回答. 要看具体情况而定,一般的,场景上的素材比较多,我们采用的方法是两个混合, 一部分必须的素材直接预加载好. 一部分留着进入场景后动态加载进来. 这样的好处是,进入场景快,loading时间更短,用户体验更好.