Unity实战笔记_5.简单的UI框架RescorceManager
来源:互联网 发布:java svg转jpg 编辑:程序博客网 时间:2024/05/15 21:58
因为要实现动态的场景加载,所以要使用到Rescorce或者AssetBundle。
这里先使用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; }
0 0
- Unity实战笔记_5.简单的UI框架RescorceManager
- Unity实战笔记_6.简单的UI框架SceneManager
- Unity实战笔记_7.简单的UI框架SceneBase
- Unity实战笔记_8.简单的UI框架模块间传参
- Unity简单UI框架搭建
- Unity 基于Lua UI简单框架
- 简单的UI框架
- Unity 简易UI框架
- Unity游戏UI框架(一)
- Unity开发UI框架搭建
- Unity UI层级管理框架
- Unity游戏UI框架(三):窗体的层级管理
- 简单快捷的Amaze UI框架搭建
- Unity3d 简单实用的UI框架
- 在UNITY中创建出一个简单的UI界面
- Unity 客户端框架(六):UI框架
- Unity 客户端框架(六):UI框架
- 简单后台UI框架
- PHP mysqli 操作数据库
- wpf和winform区别
- android自定义View的绘制原理
- C# Hashtable 使用说明 以及 Hashtable和HashMap的区别
- MyEclipse快捷键
- Unity实战笔记_5.简单的UI框架RescorceManager
- 艰苦奋斗矢志不渝
- 关于物理层的那点事
- R语言基础入门之五:简单线性回归
- 线程基础知识笔记
- Spring boot 在执行sql 脚本的时候,会出现中文乱码问题
- Android mvp开发模式
- 抽象类和接口
- Codeforces 358E