AssetBundle打包
程序员文章站
2022-07-08 10:09:01
关于AssetBundle打包什么是AssetBundle?AssetBundle是热更新的一部分,用于对游戏资源进行打包,可以在游戏运行时加载。AssetBundle可以从两个方面来解释:(1) 它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有...
-
什么是AssetBundle?
AssetBundle是热更新的一部分,用于对游戏资源进行打包,可以在游戏运行时加载。AssetBundle可以从两个方面来解释:
(1) 它是一个存在于硬盘上的文件。可以称之为压缩包。这个压缩包可以认为是一个文件夹,里面包含了多个文件。这些文件可以分为两类:serialized file 和 resource files。(序列化文件和源文件)
serialized file:资源被打碎放在一个对象中,最后统一被写进一个单独的文件(只有一个)
resource files:某些二进制资源(图片、声音)被单独保存,方便快速加载
(2)它是一个AssetBundle对象,我们可以通过代码从一个特定的压缩包加载出来的对象。这个对象包含了所有我们当初添加到这个压缩包里面的内容,我们可以通过这个对象加载出来使用。 -
AssetBundle打包流程
(1)首先对想要进行打包的资源指定 AssetBundle属性,如图所示
(2)构建AssetBundle包
(3)将AssetBundle包上传到服务器中
(4)加载AB包和包里面的资源 -
如何构建AB包?
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.IO;
public class CreatAssetBundles
{
[MenuItem("Assets/Build AssetBundle")]
static void BuildAllAssetBundle()
{
string dir = "AssetBundle";//储存打包后的AB包的路径
if (Directory.Exists(dir) == false)
{
Directory.CreateDirectory(dir);
}
BuildPipeline.BuildAssetBundles(dir, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows64);//使用BuildPipeline.BuildAssetBundles进行构建;其中BuildAssetBundleOptions为压缩方式(分为LZMA和LZ4),BuildTarget为使用的平台.
}
}
- 如果加载AB包?
主要分为两种从本地加载和从服务器上加载
(1)从本地加载
使用AssetBundle.LoadFromFile
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LoadAB : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
AssetBundle ab =AssetBundle.LoadFromFile("AssetBundle/wall.ab");
GameObject GO = ab.LoadAsset<GameObject>("timg");
Instantiate(GO);
}
}
(2)从服务器上加载
使用UnityWebRequest
在最后给大家推荐一款AssetBundle工具
https://github.com/Unity-Technologies/AssetBundles-Browser
非常好用!
本文地址:https://blog.csdn.net/weixin_42758300/article/details/107880367
推荐阅读
-
Android 打包三种方式实例详解
-
hbuilder打包ios分辨率错乱(ios免签封装隐藏网址教程)
-
hbuilder打包ios分辨率错乱(ios免签封装隐藏网址教程)
-
Unity3D 预设打包的注意事项
-
为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解
-
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
-
利用pyinstaller打包exe文件的基本教程
-
Xamarin 打包生成 Android apk 文件
-
想使用PE里没有的程序如何把程序打包进WinPE中
-
Android Studio手动打包