赞
踩
https://www.jianshu.com/p/df7cfa6d0ec3 [Unity 3D] 盘点 Github 上的那些 AssetBundle 框架(XAsset、TinaX.VFS、QFramework.ResKit、Game Framework.Resource、KSFramework-ResourceModule、BundleMaster、CatAsset、zcode-AssetBundlePacker、YooAsset、ABSystem、AssetBundleLoadManager、fuxi (伏羲)、外国友人)
AssetBundle 资源打包
Jenkins 支持 自动化构建
输入:yooAsset
输出:项目使用
教程链接:YooAsset系列教程 1.2 全局配置_哔哩哔哩_bilibili
下载工程链接:https://github.com/tuyoogame/YooAsset
下载案例链接:https://github.com/tuyoogame
unity版本:Unity2019.4+
系统的特点
安全高效的分包方案
灵活的打包系统
引用计数的管理方案:实现安全的资源卸载策略、对内存管理,变资源对象的冗余以及潜在资源泄漏问题
多种模式的自由切换:单机,联机
加载系统:同步加载、异步加载、边玩边下载、多线程下载、多功能下载器
原生格式文件管理
灵活多变的版本管理
可寻址资源定位
构建管线无缝衔接
下载安装
通过PackageManager安装
操作:(Edit/Project Settings/Package Manager)
Name: package.openupm.cn
URL: https://package.openupm.cn
Scope(s): com.tuyoogame.yooasset
目录结构
Assets
└─ YooAsset
├─ Editor 编辑器源码目录
├─ Runtime 运行时源码目录
├─ CHANGELOG
├─ LICENSE 版权文档
├─package
└─ README 说明文档
全局配置
注意:请将配置文件放在Resources文件夹下
操作:(Project窗体内右键 -> Create -> YooAsset -> Create Setting)
配置说明:
Asset Bundle File Variant : AssetBundle资源包后缀名
Raw File Variant : 原生资源包后缀名
Patch Manifest File Name : 补丁清单文件名称
资源收集
资源包收集工具—修复 导入 导出 Save Show Packages Enable Addressable
分组列表:
Level (关卡资源)
Buildin (内置资源)
Other (其他资源)
Art (美术资源)
该分组分配置界面:
Collector Assets/GameRes/Entity/Level1/footman_Blue.prefab导出按钮:
将配置数据导出XML文件 导入按钮: 导入保存的XML文件公共设置:
Show Packages: Enalble Addressable:启用可寻址资源定位系统资源分组:
Active Rule Grouper Name Grouper Desc Asset Tags
资源收集器:
Collect Path收集路径
Collect Type收集类型
AddressRule可寻址规则
PackRule打包规则(PackSeparately、PackDirectory、PackCollector、PackGrouper、PackRawFile)
FilterRule过滤规则
AssetTags资源分类标签列表
导入XML配置文件
资源构建
操作:YooAsset->AssetBundle Build
编写继承IEncryptionServices接口的加密类。注意:加密类文件需要放置在Editor文件夹里。
using System; using YooAsset.Editor; public class GameEncryption : IEncryptionServices { /// <summary> /// 检测资源包是否需要加密 /// </summary> bool IEncryptionServices.Check(string bundleName) { // 对配置表相关的资源包进行加密 return bundleName.Contains("assets/config/"); } /// <summary> /// 对数据进行加密,并返回加密后的数据 /// </summary> byte[] IEncryptionServices.Encrypt(byte[] fileData) { int offset = 32; var temper = new byte[fileData.Length + offset]; Buffer.BlockCopy(fileData, 0, temper, offset, fileData.Length); return temper; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。