AB包自定义打包工具

为什么要自己写打包:细分包策略

我们知道Unity内置的打包方案是在右下角指定包名。

我们看到商业项目都在使用细分包策略,一个包装一个预制体,包括它的模型、材质、贴图、脚本。或者装一个图标、大图、声音、动画。一个游戏有上百个甚至上千个包。这样能做到最精准的热更,更新资源时下载最少的数据。

那么如果用Unity内置打包,就选一个预制体,选择它的依赖,全部打上包名。只是这个过程要重复几十上百次。

我们知道预制体路径都是要填在配表的,如果采用细分包,包名也要填到配表。那么在Unity内置工具把这些包名手填一遍就是大量重复劳动。

那么我们自然想到让编辑器工具读取配表去打包。

这里又分为两种策略,可以先根据配表设置包名,也可以直接打包。我们发现官方的工具在浏览包内容、依赖时是很好用的。所以采取工具设置包名-browser检查包内容和依赖-打包的策略。

细分包用内置设置包名后看起来是这样的。很明显不可能手填包名。

依赖处理、防止重复包含

使用

cs 复制代码
string[] deps = AssetDatabase.GetDependencies(path, true);

获得依赖。当依赖的包名已经不为空且和主资源包名不同时,需要某种处理。

如果想引起人的注意,直接弹窗,那么弹窗应该有几个选项?保持原名和设置为目标名字。但其实我们想要的是要么打成公共包,要么这些都打成一个包。

相关推荐
玖玥拾6 小时前
Unity 3D 笔记(十二)Unity/C# Socket 网络笔记1
网络·unity·c#
玖玥拾7 小时前
Unity 3D 笔记(十五)Unity/C# Socket 网络笔记4
服务器·网络·unity·c#
xcLeigh1 天前
Unity基础:创建你的第一个游戏物体——Cube、Sphere与基本3D物体
游戏·3d·unity·教程
ellis19701 天前
C#异常相关关键字:Exceptions,throw,try,catch,finally
unity·c#
HH‘HH2 天前
Unity通过OPC UA工业协议连接工业设备实战指南
unity·游戏引擎
め.2 天前
定点数运算库
算法·unity
点量云实时渲染-小芹2 天前
UE/Unity/Webgl模型在信创服务器上实时渲染推流的可行性分析
unity·webgl·云渲染信创·国产实时渲染·ue信创云推流
郝学胜-神的一滴2 天前
[简化版 GAMES 104] 现代游戏引擎 02:拆解现代游戏引擎5+1层级架构,吃透引擎底层核心逻辑
c++·unity·架构·游戏引擎·图形渲染·unreal engine·系统设计
unityのkiven2 天前
Unity 中如何创建一片森林:享元模式能不能用?应该怎么用?
unity·游戏引擎·享元模式