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有啥作用的主要内容,如果未能解决你的问题,请参考以下文章

《Unity3D/2D游戏开发从0到1》正式出版发行

关于《Unity3D/2D游戏开发从0到1》书籍再版说明

怎么用unity5.3.4做一个2d游戏

Unity3D AssetBundle相关

[Unity3D]如何创建图片文件夹的assetbundle,然后将这些图片加载为纹理?

转UNITY3D 游戏开发之四有关实现2D帧序列帧播放相关—Animating Tiledtexture