UIFramework之Unity4.x 场景管理策略
2017-05-20 15:06
411 查看
UIFramework之Unity4.x 场景管理策略
基本策略:一个初始场景+一个空场景。所有资源动态从Resource目录下加载或者从AssetBundle加载。每个场景加载和销毁都有相似的处理过程,所以每个场景的主模块可以提取父类。
using UnityEngine; using System.Collections; public abstract class AbsSceneBaseUI : MonoBehaviour { //when come in this Scene,this fuction must to execute; public virtual void InitSceneSnyc(object[] args) { } //when come in this Scene,this fuction must to execute; public virtual IEnumerator InitSceneAsnyc(object[] args) { yield return null; } //when come out this Scene,this fuction must to execute; public virtual void FinallizSceneSync() { } //when come out this Scene,this fuction must to execute; public virtual IEnumerator FinallizSceneAsync() { yield return null; } //Save system infomation public virtual void SaveSystemInfo() { } }
场景切换的过程:
①判断目标场景是否与当前场景是否一样,一样则return。
②开启Loading界面。
③执行加载前的回调函数。
④保存上一个场景中的信息。
⑤清理上一个场景。
⑥加载空场景x2。
⑦加载目标场景主模块。
⑧初始化主模块。
⑨执行加载完成后的回调。
⑩关闭Loading界面。
tips:Unity4.x里面加载一个新的场景会执行一些清理工作,但是会隔一个场景才会卸载内存。即加载下下个场景才会清理本场景的相关内存,所以在加载空场景的时候加载两次。
场景加载后也可执行Resources.UnloadUnusedAssets(); Unloads assets that are not used。
关于GC,GC会造成卡顿,所以一般可以使用定时器,每隔一段时间GC一次。
相关文章推荐
- UIFramework之Unity4.x 资源加载策略
- 【Unity】四叉树/八叉树管理和动态加载场景物件
- Unity使用git管理项目时场景中丢失脚本的问题
- 通过自定义的域策略管理模板修改vmwaredhcp服务启动
- LoadRunner日积月累(3) —— 场景的管理
- 通过自定义的域策略管理模板修改vmwaredhcp服务启动
- 工作流管理中的一种资源管理策略
- LoadRunner日积月累(3) —— 场景的管理
- 什么是CRM?选择和管理最有价值客户关系的一种商业策略
- UNIX网络系统的安全管理策略
- 面向GPU 的多LOD 因子的大规模场景可视化策略
- Policy Tool — 策略文件创建和管理工具
- 金融领域UNIX网络系统的安全管理策略
- 建立企业补丁管理策略,从此告别手工打补丁!
- 对象缓冲池--采用最近最久未使用策略(LRUCache )管理对象,同时带有事件监听功能[改正版]
- 通过自定义的域策略管理模板修改vmwaredhcp服务启动
- ACE使用经验-利用ACE日志策略进行日志运行时配置管理
- 基于JDBC的数据库连接池高效管理策略
- Ambient Networks 的自管理策略
- 专题:补丁自动分发管理策略