AssetBundle打包
程序员文章站
2022-04-16 22:25:52
关于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
推荐阅读
-
解决cordova+vue 项目打包成APK应用遇到的问题
-
windows环境下Tensorflow 2.1.0 打包成exe可执行程序
-
springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)
-
Unity3D 预设打包的注意事项
-
Android笔记之:App自动化之使用Ant编译项目多渠道打包的使用详解
-
为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解
-
详解如何使用webpack打包多页jquery项目
-
浅谈webpack性能榨汁机(打包速度优化)
-
Android Studio 超级简单的打包生成apk的方法
-
android 二次打包完成apk多渠道打包的方法