miku
Unity 在检测到 Project 内部的 Asset 有变化时, 会通过 Asset Import Pipeline 将其转为 Unity 专属的缓存格式供 Unity 读取, 这个过程非常耗时. 在团队使用 Unity 开发时, 每个设备的 Unity 工程在冷启动、修改某些资源文件、编译打包、切换平台时, 都需要建立一份同样的缓存, 浪费大量时间. 一种解决方法是绕过 Unity, 自行维护一套外部的资(新)源(的)管(屎)理(山)系统, 但前期开发与标准制定成本很大. 其次就是硬撑. 尽管版本管理时往往会排除 Library 文件夹, 但仍可以通过移动硬盘或其他工具来 “按需同步” 共享缓存, Unity Accelerator 正是为此而生, 很符合直觉的空间换时间. Unity Accelerator 可以帮助 Unity 将缓存上传至某台服务器, 当团队中有人需要建立缓存时, 如果该资源已经被某个人建立过, 并已经通过 Accelerator 缓存, 则直接通过网络下载, 无需消耗大量时间与 CPU 资源来重建, 适合团队开发使用, 对于大型项目提升非常明显. [Unity - Manual: Unity Accelerator](https://docs.unity3d.com/Manual/UnityAccelerator.html) # 适合的人群 - 必须是一名 Unity 开发者, 有使用 Unity 的需求(废话) - 有团队工作或多平台开发测试需求或有多个 Unity 项目, 需要经常导入相同的资源 - 不同项目中有大量 Shader 或 Shader 变体. 打包中首次 Shader 编译耗时最长, 不同项目中的相同 Shader 只需编译一次即可, 对于 CPU 密集的任务可节省相当多的时间. # 安装 Unity Accelerator 支持 Windows, MacOS, Linux(AppImage) 以及 Docker, 从官方文档中下载即可. 推荐使用固态硬盘存储缓存文件, 网络方面最好是支持 1000mbps 以上带宽的网卡、路由器、交换机, 通过有线连接, 否则可能会被硬件限制, 导致通过缓存服务器下载缓存的结果还没有重建快. 但 Shader 编译必然会大幅加速, 除非现代 CPU 用着古代网卡或网络, 几十几百 M 的资源传半天. ### 懒猫微服特供 可以在商店中一键安装, Unity Editor 中使用 `unity-accelerator.xxx.heiyu.space` 连接即可, 不需要任何配置. https://appstore.lazycat.cloud/#/shop/detail/shiina.lzcapp.unity-accelerator # 配置 服务端在普通使用中不需要修改配置, 只需关注 Unity Editor. 在 Preferences 中启用 Unity Accelerator, 填写服务器的 ip 或域名即可. 为确保项目隔离, 还可以在 Project Settings 中填写 Namespace prefix. Accelerator 中实际存储的结构为: - namespace + artifacts - namespace + metadata - Shader Cache   填写完成确认无误后, 即可在右下角看见一个蓝色的桶状标识, 代表连接成功.  # 测试 服务端: [懒猫微服](https://lazycat.cloud) i5-1155G7+32内存+512固态+2t机械+2.5g网卡. 受系统限制, 缓存数据存放在机械硬盘. 开发机: [Mac mini](https://www.apple.com/shop/buy-mac/mac-mini/apple-m4-chip-with-10-core-cpu-and-10-core-gpu-16gb-memory-256gb#) M4 10核心(6E+4P)+16内存+256固态+10G网卡, MacOS 15.2 交换机: [SE106 Pro 2.5g](https://item.jd.com/100143005192.html) Unity 版本: Unity 6000.0.40f1, URP 17.0.1 测试项目: [Unity URP Sample Scene](https://unity.com/demos/urp-3d-sample) [URP 3D Sample](https://unity.com/demos/urp-3d-sample) 刚好手里还有个傲腾 P5801X, 之后想起来再用 傲腾+192G 内存+PrimoCache 做个本机缓存来测试上限 ## 冷启动 ### 不开启 Accelerator Unity 本地重建缓存, 期间会占用大量 CPU, 需要约 90 秒  其中前 20 秒左右为安装 package, 以及编译代码, 之后的 70 秒为 Asset Import Pipeline 的转换过程 ### 开启 Accelerator 模拟其他成员打开相同工程. 只需从局域网中下载所需要的缓存文件即可, 总启动时间约 45 秒(含一部分 Shader Cache)   同样有 20 秒的预处理时间, 剩余 70 秒的转换过程节约了50秒. 期间从缓存服务器下载资源几乎达到了测试环境设备硬件配置上限. 在大型团队项目中提升会更加明显. ## 打包项目 打包为 Apple Silicon, 需要花费大量时间编译 Shader  ### 不开启 Accelerator 本地重新编译, 长达一小时, 澡都洗完了还在这编. 亏编的早, 不然这觉都睡不成了. 虽然没啥可比性, 但隔壁 14900k 半小时都已经从源代码编译一个 ue5.5 出来了XD 好想有 M3 Ultra 玩……   ### 开启 Accelerator 从缓存服务器下载缓存, 约 40 秒即可打包完成, 对比下来提升非常大. 当然, 这建立在已经有人/机负重前行的情况下, 其他人才能岁月安好XD 如果团队规模大, 还可以专门做个打包服务器, 经常更新一下预缓存. 推荐设置打包机仅上传, 开发机仅下载.
评论
0暂无评论