博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Unity3D - 资源管理
阅读量:6592 次
发布时间:2019-06-24

本文共 1994 字,大约阅读时间需要 6 分钟。

    一直没有总结过Unity的资源管理,都是随用随看文档。今天有人问起,总结一下。加深对Unity资源管理的理解。

主要參考了Unity官方文档之和。

    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的动态资源管理了。

以下这幅图描绘的更清晰:

转载地址:http://fgdio.baihongyu.com/

你可能感兴趣的文章
Pest Control &gain RS3gold rs3 cheap gold with $10
查看>>
caj文件怎么转换成word文档
查看>>
Flink状态管理和容错机制介绍
查看>>
IT必备网络基础知识
查看>>
ECS Linux开启swap(虚拟内存)
查看>>
tomcat catalina.out切割脚本
查看>>
我的友情链接
查看>>
windows下删除过期的文件
查看>>
Chapter 18 Packages
查看>>
openstack 概述(一部分)
查看>>
ACL应用
查看>>
centos6 及Redhalt yum源更新
查看>>
linux 调优记录
查看>>
客户端是如何判断是否带jsessionid去服务端呢
查看>>
气质是装不出来的
查看>>
Apache支持.htaccess以及“No input file specified” 和“ 重新载入页面以获取源代码”错误信息解决方案...
查看>>
盗版升级win10仍是盗版
查看>>
6月我国域名总量新增近10.8万个 环比减少2.9%
查看>>
输出*
查看>>
学习总结
查看>>