Unity实战笔记_5.简单的UI框架RescorceManager
2016-12-25 11:49
495 查看
因为要实现动态的场景加载,所以要使用到Rescorce或者AssetBundle。
这里先使用Rescorce加载。由于直接使用Rescorce中的接口并不方便。所以将其封装到一个RescorceManager类中。
首先应将这个类设置为单例,外部通过获取到ResManager的单例来加载或卸载资源。
首先实现单例:
封装Load接口
参数isCache用于标记是否将该资源加入缓存中(一些场景可能会频繁打开,所以将其加入缓存中,防止重复创建耗费资源)
所以创建一个容器将加入缓存的资源保存起来
添加后函数如下
添加函数CreateGameObject用来创建加载的游戏物体。
这里先使用Rescorce加载。由于直接使用Rescorce中的接口并不方便。所以将其封装到一个RescorceManager类中。
首先应将这个类设置为单例,外部通过获取到ResManager的单例来加载或卸载资源。
首先实现单例:
#region private static ResManager instance; /// <summary> /// 获取单例 /// </summary> private static ResManager Instance { get { if(instance==null) { instance = new GameObject("_ResManager").AddComponent<ResManager>(); } return instance; } } #endregion
封装Load接口
public T Load<T>(string path, bool isCache) where T : UnityEngine.Object { T assetObj = Resources.Load<T>(path); if(assetObj==null) { Debug.LogError("加载的资源不存在"); } return assetObj; }
参数isCache用于标记是否将该资源加入缓存中(一些场景可能会频繁打开,所以将其加入缓存中,防止重复创建耗费资源)
所以创建一个容器将加入缓存的资源保存起来
添加后函数如下
public T Load<T>(string path, bool isCache) where T : UnityEngine.Object { //判断当前加载的文件是否在缓存表中,如果在,直接返回表中的值 if(cacheTable.Contains(path)) { return cacheTable[path]as T;//通过key来找到表中的数据 } T assetObj = Resources.Load<T>(path); if(assetObj==null) { Debug.LogError("加载的资源不存在"); } if(isCache) { cacheTable.Add(path, assetObj); Debug.Log("将对象加入缓存中,path=" + path); } return assetObj; }
添加函数CreateGameObject用来创建加载的游戏物体。
/// <summary> /// 从加载的资源中创建出游戏物体 /// </summary> /// <param name="path">资源路径</param> /// <param name="isCache">是否加入缓存</param> /// <returns>GameObject游戏物体</returns> public GameObject CreateGameObject(string path, bool isCache) { GameObject assetObj = Load<GameObject>(path, isCache); GameObject gameObject = Instantiate(assetObj); if(gameObject==null) { Debug.LogError("加载资源出错,path=" + path); } return gameObject; }
相关文章推荐
- Unity实战笔记_7.简单的UI框架SceneBase
- Unity实战笔记_6.简单的UI框架SceneManager
- 12.24笔记(关于//UIDynamic演练//多对象的附加行为//UIDynamic简单演练//UIDynamic//(CoreText框架)NSAttributedString)
- 项目记录26--unity-tolua框架 View03-UIManager.lua
- 项目记录26--unity-tolua框架 View03-UIManager.lua
- Unity简单的UI框架---------UGUI
- Unity简单UI框架搭建
- Unity 基于Lua UI简单框架
- 【Unity3D技巧】一个简单的Unity-UI框架的实现
- Laravel框架学习笔记(二)项目实战之模型(Models)
- shell 脚本实战笔记(11)--Mysql在linux下的安装和简单运维
- 关于框架学习的简单笔记
- 作业调度框架 Quartz 学习笔记(二) -- 简单触发器(SimpleTrigger)
- 作业调度框架 Quartz 学习笔记(二) -- 简单触发器(SimpleTrigger)
- duilib学习笔记01:一个简单的Duilib程序的基本框架
- iOS学习笔记—— UIPickerView 控件的简单使用
- iOS学习笔记---UIPageControl的简单使用(用于分页)
- Qt实现完全按键控制Ui的简单框架
- 黑马程序员_Executor框架简单创建、运行、关闭学习笔记
- 高性能Linux服务器构建实战 简单笔记