Unity AssetBundles打包和加载

一、文章详解:AssetBundle的打包和加载

二、搭建场景

图片右下角,根据名称来打包,相同名字的打在同一个包里面。项目地址


打包要求:

“picture.pa”信息里面打包的信息名要记好,等到加载的时候,需用到。

注:“picture.pa”我为了看里面的内容先放到Resources文件夹下,等看完信息,需把它放回StreamingAssets文件下


二、脚本

1.打包脚本

打包脚本需放在Editor文件名下,自己选择打包好放在

### 创建使用 Unity AssetBundles #### 构建 AssetBundles 当构建一个 AssetBundle 时,Unity 使用该 bundle 中的信息来选择要编译的着色器变体。AssetBundle 可以包括场景、材质、图形设置以及着色器变体集合[^1]。 为了创建这些 AssetBundles,在 `Assets` 目录下建立名为 `Editor` 的文件夹,并在此处添加 C# 脚本文件用于定义菜单项以便于触发打包过程: ```csharp using UnityEditor; using System.IO; public class CreateAssetBundles { [MenuItem("Assets/Build AssetBundles")] static void BuildAllAssetBundles() { string assetBundleDirectory = "Assets/AssetBundles"; if (!Directory.Exists(assetBundleDirectory)) { Directory.CreateDirectory(assetBundleDirectory); } BuildPipeline.BuildAssetBundles( assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows ); } } ``` 这段代码会在编辑器中新增一条菜单命令 “Assets -> Build AssetBundles”,执行此操作将会把所有标记为 AssetBundle 的资源导出到指定位置并按照目标平台进行优化处理[^2]。 #### 加载 AssetBundles 其内部资产 对于已经生成好的 AssetBundle 文件来说,可以通过多种方式进行加载。其中一种常见的方式是从本地磁盘读取 AssetBundle 数据流,之后调用 `LoadAsset<T>()` 方法根据名称检索特定类型的对象实例化它们: ```csharp for (int i = 0; i < assetNames.Length; i++) { GameObject go = bundle.LoadAsset<GameObject>(assetNames[i]); Instantiate(go); } ``` 上述循环遍历给定的名字列表尝试从中提取游戏物体并立即实例化每一个找到的对象[^4]。 此外,还有其他几种不同的 API 支持更复杂的加载逻辑或者网络下载等功能,具体取决于项目需求技术栈的选择。 #### 浏览已有的 Asset Bundles 官方提供了专门针对 Asset Bundle 管理而设计的一款工具叫做 **Unity Asset Bundle Browser** ,它可以帮助开发者更好地管理查看项目的各个包及其依赖关系等信息[^3]。 通过以上介绍可以了解到如何在 Unity 中创建 AssetBundles 并将其应用在游戏中实现按需加载功能从而减少初始安装体积提高性能表现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值