AI prompts
base on unity3d resources management system # YooAsset
[![License](https://img.shields.io/github/license/tuyoogame/YooAsset)](https://github.com/tuyoogame/YooAsset/blob/master/LICENSE)[![openupm](https://img.shields.io/npm/v/com.tuyoogame.yooasset?label=openupm®istry_uri=https://package.openupm.com)](https://openupm.com/packages/com.tuyoogame.yooasset/)
**YooAsset**是一套用于Unity3D的资源管理系统,用于帮助研发团队快速部署和交付游戏。
它可以满足商业化游戏的各类需求,并且经历多款百万DAU游戏产品的验证。
**YooAsset可以满足以下任何需求:**
- 我想发布一个不包含任何游戏资源的安装包,然后玩家边玩边下载。
- 我想发布一个可以保证前期体验的安装包,然后玩家自己选择下载关卡内容。
- 我想发布一个保证300MB以下内容的安装包,然后进入游戏之前把剩余内容下载完毕。
- 我想发布一个偏单机的游戏安装包,在网络畅通的时候,支持正常更新。在没有网络的时候,支持游玩老版本。
- 我想发布一个MOD游戏安装包,玩家可以把自己制作的MOD内容上传到服务器,其它玩家可以下载游玩。
- 我们在制作一个超大体量的项目,有上百GB的资源内容,每次构建都花费大量时间,是否可以分工程构建?
### 系统特点
- **构建管线无缝切换**
支持传统的内置构建管线,也支持可编程构建管线(SBP)。
- **支持分布式构建**
支持分工程构建,支持工程里分内容构建,很方便支持游戏模组(MOD)。
- **支持可寻址资源定位**
默认支持完整路径的资源定位,也支持可寻址资源定位,不需要繁琐的过程即可高效的配置寻址路径。
- **安全高效的分包方案**
基于资源标签的分包方案,自动对依赖资源包进行分类,避免人工维护成本。可以非常方便的实现零资源安装包,或者全量资源安装包。
- **强大灵活的打包系统**
可以自定义打包策略,自动分析依赖实现资源零冗余,基于资源对象的资源包依赖管理方案,天然的避免了资源包之间循环依赖的问题。
- **基于引用计数方案**
基于引用计数的管理方案,可以帮助我们实现安全的资源卸载策略,更好的对内存管理,避免资源对象冗余。还有强大的分析器可帮助发现潜在的资源泄漏问题。
- **多种模式自由切换**
编辑器模拟模式,单机运行模式,联机运行模式,WebGL运行模式。在编辑器模拟模式下,可以不构建资源包来模拟真实环境,在不修改任何代码的情况下,可以自由切换到其它模式。
- **强大安全的加载系统**
- **异步加载** 支持协程,Task,委托等多种异步加载方式。
- **同步加载** 支持同步加载和异步加载混合使用。
- **边玩边下载** 在加载资源对象的时候,如果资源对象依赖的资源包在本地不存在,会自动从服务器下载到本地,然后再加载资源对象。
- **多线程下载** 支持断点续传,自动验证下载文件,自动修复损坏文件。
- **多功能下载器** 可以按照资源分类标签创建下载器,也可以按照资源对象创建下载器。可以设置同时下载文件数的限制,设置下载失败重试次数,设置下载超时判定时间。多个下载器同时下载不用担心文件重复下载问题,下载器还提供了下载进度以及下载失败等常用接口。
- **原生格式文件管理**
无缝衔接资源打包系统,可以很方便的实现原生文件的版本管理和下载。
- **灵活多变的版本管理**
支持线上版本快速回退,支持区分审核版本,测试版本,线上版本,支持灰度更新及测试。
- **多平台的完美适配**
支持安卓,苹果,PC等常规平台,支持网页运行。2.x版本完美适配了微信小游戏平台和抖音小游戏平台。
### 官方主页(教程文档)
https://www.yooasset.com/
", Assign "at most 3 tags" to the expected json: {"id":"4393","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"