Unity3D - 资源管理
一直没有总结过Unity的资源管理,都是随用随看文档。今天有人问起,总结一下。加深对Unity资源管理的理解。
主要參考了Unity官方文档之Resources和AssetBundle。
Unity有两种动态载入资源的方式,Resources.Load和AssetBundle。Resources.Load用于载入打进游戏包内Resources文件夹下的资源,AssetBundle用于载入包外自己打的资源包(使用BuildPipeline.BuildAssetBundle)。经常使用于做动态更新。
以下结合API详细说明:
载入:
Resources.Load:载入app包内Resources/文件夹的一个asset;
Resources.LoadAsync:Resources.Load的异步方法。
Resources.LoadAll:类似Resources.Load,可是用于载入某文件夹下全部asset;
Resources.LoadAssetAtPath:载入Asset/文件夹下的资源,仅仅能用于编辑器模式。写打包工具时可能用到;
---------------------------------------------------------------------------------------------------------------------------------------
AssetBundle.CreateFromFile:从磁盘载入一个AssetBundle,这是载入AssetBundle最快的方式(仅仅能载入uncompressed的AssetBundle)。
Unity
5.x改为LoadFromFile,并且能够载入compressed的;
AssetBundle.CreateFromMemory:从内存中创建一个AssetBundle,异步方法。
Unity 5.x改为LoadFromMemoryAsync;
AssetBundle.CreateFromMemoryImmediate:AssetBundle.CreateFromMemory的同步方法。Unity 5.x改为LoadFromMemory。
WWW.LoadFromCacheOrDownload:从缓存或网络上下载后载入AssetBundle,不需操心设备空间不足;
AssetBundle.LoadAsset:从AssetBundle中载入一个asset。
AssetBundle.LoadAssetAsync:AssetBundle.LoadAsset的异步方法;
AssetBundle.LoadAllAssets:载入AssetBundle中全部指定类型的asset。
AssetBundle.LoadAllAssetsAsync:AssetBundle.LoadAllAssets的异步方法;
卸载:
Resources.UnloadAsset(Object assetToUnload):卸载指定的asset。仅仅能用于从磁盘载入的;假设场景中有此asset的引用,Unity会自己主动又一次载入它。
Resources.UnloadUnusedAssets:卸载全部未被引用的asset,能够在画面切换时调用,或定时调用释放全局未使用资源;
---------------------------------------------------------------------------------------------------------------------------------------
AssetBundle.Unload(false):卸载AssetBundle的压缩文件数据(文件内存映像)。
AssetBundle.Unload(true):卸载AssetBundle文件内存映像,而且释放全部已载入的asset。假设asset在场景中被引用,会丢失;
---------------------------------------------------------------------------------------------------------------------------------------
Object.Destroy:销毁一个GameObject、组件或asset。并非马上销毁,而是在Update循环之后,渲染之前;
Object.DontDestroyOnLoad:标明一个对象在切换场景时不被销毁;
GC.Collect:强制垃圾收集器马上回收内存,能够依据须要使用,比方切换画面调用或定时调用。
通过看Unity的这些API说明。能够清晰地了解Unity的动态资源管理了。
以下这幅图描绘的更清晰:
Unity3D - 资源管理的更多相关文章
- Unity3d资源管理分析
原创链接:http://blog.csdn.net/ox_thedarkness/article/details/9197453 分离资源管理 参考 1.Unity3D占用内存太大的解决方法 - 星尘 ...
- Unity3D资源管理架构
在Unity3D引擎中,场景资源文件(.unity)是以2进制格式存储的.但同一时候它也有一种基于文本的表现格式. 可在Edit>Project Setting>Editor 中设置: 1 ...
- 资源 Des加密
Unity3d资源管理分析 http://blog.csdn.net/sgnyyy/article/details/39268215 打包资源 http://www.cnblogs.com/sifen ...
- Unity3D和OGRE资源管理机制
转自:http://www.tuicool.com/articles/QbMjUn 游戏中通常有大量资源,如网格.材质.纹理.动画.着色器程序和音乐等,游戏引擎作为做游戏的工具,自然要提供良好的资源管 ...
- 浅析游戏引擎的资源管理机制——扒一扒Unity3D中隐藏在背后的资源管理
游戏中通常有大量资源,如网格.材质.纹理.动画.着色器程序和音乐等,游戏引擎作为做游戏的工具,自然要提供良好的资源管理,让游戏开发者用最简单的方式使用资源.游戏引擎的资源管理包括两大部分:离线资源管理 ...
- Unity3D游戏开发框架-资源管理类ResourceManage
新建文件夹:ResMgr.接着新建三个C#脚本.代码如下: IResLoadListener.cs AssetInfo.cs ResMgr.cs using UnityEngine; using Sy ...
- Unity3D游戏开发初探—1.跨平台的游戏引擎让.NET程序员新生
一.Unity3D平台简介 Unity是由Unity Technologies开发的一个让轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的 ...
- Unity3D游戏开发初探—3.初步了解U3D物理引擎
一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀 ...
- 跟我从零基础学习Unity3D开发--U3d脚本注意事项及两个基本函数的简单介绍
经过上一篇的学习,我相信开发环境您已经搭好了,如果还没有搭好可以百度一下. 今天主要讲的有以下几点: 第一:Unity3D中的C#脚本与.net中的C#写法的区别 1.Unity3D C#脚本不支持命 ...
随机推荐
- 无法完成你的itunes store 请求发生未知错误50
装上itunes登陆itunes store时遂发现"无法完成您的itunes store的请求,发生未知错误(-50)"跃入眼帘,卸载重装数次还是不见效果,难道是WIN7和itu ...
- Adding an instance to a MEF container
How can you add an already created instance to a MEF container/cataloge to use when resolving Import ...
- C#中,什么时候用yield return
yield关键字用于遍历循环中,yield return用于返回IEnumerable<T>,yield break用于终止循环遍历. 有这样的一个int类型的集合: static Lis ...
- Kali Linux下安装配置ProFTPD实例
1.安装ProFTPD 在ftp://ftp.proftpd.org/下能够找到官方公布的各个ProFTPD版本号,本人使用ftp://ftp.proftpd.org/historic/source/ ...
- svn(subversion)版本控制系统学习与理解
定义:Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS. 从这段话,我们可以得到四点信息: ...
- DruidDataSource配置
DruidDataSource大部分属性都是参考DBCP的,如果你原来就是使用DBCP,迁移是十分方便的. 参考配置 <bean id="dataSource" class= ...
- 精选 5 个漂亮的 CSS3 图片滑过特效
这篇文章将为大家分享5款漂亮的CSS3图片滑过特效,比如滑过后显示图片的详细文字介绍,又比如滑过后对图片进行淡入淡出的效果等等.让我们一起来看看,喜欢的朋友赶紧收藏. 1.非常酷的CSS3图片说明效果 ...
- 仿LOL项目开发第七天
仿LOL项目开发第七天 by 草帽 不知不觉已经写到了第七篇这种类型的博客,但是回过头看看之前写的,发现都只能我自己能看懂. 我相信在看的童鞋云里雾里的,因为我基本上没怎么详细讲一个脚本怎么用?但是你 ...
- 最小二乘法least square
上研究生的时候接触的第一个Loss function就是least square.最近又研究了一下,做个总结吧. 定义看wiki就够了.公式如下 E(w)=12∑n=1N{y−xWT}2E(w)=12 ...
- 如何读取抓取的wifi包内容
有密码的WIFI,WIFI的密码会生成一个临时会话密钥,这个临时会话密钥可以用来加密会话内容,也就是说.比如你在浏览网页,用有密码的WIFI,连接上以后,浏览的网页流量是加密了的,所以更安全.无密码的 ...