Unity2021 AssetBundle资源打包
AssetBundle是一种动态地资源加载方式。如果一次性地把资源导到游戏里,会使得游戏过大。可以把一些资源(例如:预制体、image、材质、music)与游戏主体分离,然后把这些分离的资源放到服务器上。当游戏需要该资源的时候就从服务器加载该资源,从而实现了资源的动态更新。
1. 打包的主要步骤
-
设置打包的对象
-
生成AssetBundle
-
上传到服务器
-
下载AssetBundle
-
加载对象
-
使用对象
2.设置打包对象
-
首先,设置打包对象。
-
新建Prefabs文件夹,把图片放在Prefabs文件夹中。
-
新建一个材质球,把材质球添加到beijing中。
-
点击beijing预制体,可以看到Inspector窗口的右下角有个AssetBudle选项,第一个下拉菜单设置打包名称,第二个设置拓展名,都可以通过new自定义。
-
在这里,把三幅图片预制体都设置成allres打包名,以及u3d拓展名。
-
3.生成AssetBundle
-
设置能够快速打包的编辑菜单
using System.IO; using UnityEngine; using UnityEditor; public class MyTools : Editor { [MenuItem("Tools/CreateBundle")] static void CreateAssetBundle() { string path = "AB";//写入文件 if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } //path:打包路径,BuildAssetBundleOptions.None:打包方式, BuildTarget.StandaloneWindows64:打包的目标平台 BuildPipeline.BuildAssetBundles(path, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64); Debug.Log("Created Bundle!"); } }
-
打包参数的设置
None 不使用任何特殊选项构建 assetBundle。 UncompressedAssetBundle Don’t compress the data when creating the AssetBundle. DisableWriteTypeTree 不包括 AssetBundle 中的类型信息。 DeterministicAssetBundle 使用存储在资源包中对象的 ID 的哈希构建资源包。 ForceRebuildAssetBundle 强制重新构建 assetBundle。 </