unity3d开发2d游戏中Assetbundle有啥作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d开发2d游戏中Assetbundle有啥作用相关的知识,希望对你有一定的参考价值。
参考技术A 在unity3d开发2d游戏中,Assetbundle 是Unity Pro提供提供的功能,它可以把多个游戏对象或者资源二进制文件封装到Assetbundle中,提供了封装与解包的方法使用起来很便利。Resources是动态内部调用,Resources在编辑环境下是project窗口的一个文件夹,调用里面的资源,可以用Resources类,比如Resources.Load,打包后这个文件夹是不存在的,会统一生成assets资源,AssetBundle 是外部调用,要用AssetBundle 首先要先。本回答被提问者采纳
在Unity中使用AssetBundle
参考技术A 我们想要在游戏中动态的加载我们的资源,可以使用AssetBundle的方式或者是Resources.Load的方式。那么如何使用AssetBundle呢
我们首先需要对我们的编辑器做一些小小的处理
1.在Unity中增加一个打bundle的操作按钮
在项目的Assets同级目录下创建一个Editor的文件,然后在新建一个脚本文件
引用官方的话
//Create a folder (right click in the Assets folder and go to Create>Folder), and name it “Editor” if it doesn’t already exist
//Place this script in the Editor folder
要把这个脚本放到Editor文件里才能正确运行 否则会报错 提示命名空间不正确。
这样我们的打包按钮就加好了,只要点击操作就会走这个静态方法(BulidAssetBundle)进行打包。
其中打包主要是调用了BulidPipeline.BuildAssetBundles这个方法。
BulidPipeline.BuildAssetBundles主要使用三个参数来完成打包:
第一个是打包后的包体存放路径。
第二个是打包规则。
第三个是目标操作系统。
第二个参数打包规则可以分为很多
//官方解释地址
[ https://docs.unity3d.com/ScriptReference/BuildAssetBundleOptions.html]
第三个参数是使用的目标操作系统
下面还有很多没有截图全,有Android和ios。
那么assetBundle是如何在我们整个项目中区分什么资源需要打包的呢?
其实是通过标签来做到的
这样打出来的bundle都是mod.player
2.查看我们打好的bundle
当我们正确打包好bundle后会在制定好的路径里看到我们打好的包
其中我们可以通过查看.manifest文件来得知里面包含了什么资源
3.加载我们已经打好的bundle
3.1 使用本地文件加载的方式 AssetBundle.LoadFromFile
3.2 使用内存加载的方式 AssetBundle.LoadFromMemory
3.3 使用内存异步加载的方式 AssetBundle.LoadFromMemoryAsync
4.卸载我们加载上游戏的bundle
AssetBundle.UnloadAllAssetBundles,当我们设置为
AssetBundle.UnloadAllAssetBundles(true)的时候,就会把我们已经引用的bundle的资源都卸载掉,
如果是false的话就保留引用部分。例如下图:
以上是关于unity3d开发2d游戏中Assetbundle有啥作用的主要内容,如果未能解决你的问题,请参考以下文章