位置: 编程技术 - 正文
推荐整理分享Unity3D - 资源管理(unity资源文件),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity资源文件,unity资源管理插件,unity资源库,unity3d资源包 如何用,unity3d资源包 如何用,unity3d资源管理,unity3d资源管理,unity资源库,内容如对您有帮助,希望把文章链接给更多的朋友!
转载Unity3D - 资源管理--夜风_
一直没有总结过Unity的资源管理,都是随用随看文档。今天有人问,竟然没说上来,说起来也做了两款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最快的方式(我查到有人说这种方式只能用于pc,官方文档没提有这个限制,待检验);
AssetBundle.CreateFromMemory:从内存中创建一个AssetBundle,异步方法;
AssetBundle.CreateFromMemoryImmediate:AssetBundle.CreateFromMemory的同步方法;
AssetBundle.LoadAsset:从AssetBundle中加载一个asset;
AssetBundle.LoadAssetAsync:AssetBundle.LoadAsset的异步方法;
AssetBundle.LoadAllAssets:加载AssetBundle中所有指定类型的asset;
AssetBundle.LoadAllAssetsAsync:AssetBundle.LoadAllAssets的异步方法;
WWW.LoadFromCacheOrDownload:从缓存或网络上下载后加载AssetBundle,不需担心设备空间不足;
卸载:
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的动态资源管理了。下面这幅图描绘的更清晰:
unity的网络通信 (一)unitynetwork初步最新消息:在月2日的开发者大会上,我问了一下unity的人,会不会对网络层进行封装和改进,unity的人表示,最晚5.0,最快4.x版本
[置顶] unity3d中加密保存本地存档 unity中提供了PlayerPrefs来存储和读取本地的存档,根据unity的文档显示,很容易就能找到这些信息存储的位置而且是明文的,很容易就看懂了也可以修改,如何
扩展Unity3d 组件方法,简化API使用 - C#特性之 Extension Method 在日常使用Unity3d中,经常碰到一些简单操作但是代码却很长的问题,比如变换一个GameObject的Y位置,会按照下面的写法:transform.localPosition=newVector3(transf
标签: unity资源文件
本文链接地址:https://www.jiuchutong.com/biancheng/377226.html 转载请保留说明!友情链接: 武汉网站建设