Icy Unity Framework,提供Unity商业项目必备的各种基础设施,集成业界常用高质量插件/工具;
HybridCLR + YooAsset + UniTask + Luban + Obfuz + KCP + NativeWebSocket + Protobuf + Odin + LitMotion + SRDebugger + UIParticle + UIEffect + ZString;
更具体的见Features & Roadmap
- 安装Framework:
- 方式一(推荐):直接Clone本仓库,以本仓库作为基础进行项目开发
- 方式二:
- 拷贝Icy/Packages、Icy/Assets/ThirdParty、Icy/Assets/Plugins 这三个目录下的内容到你的项目目录的同名文件夹
- 拷贝/Config、/Proto两个目录到你的项目的Assets目录的上一级目录
- 拷贝Icy/IcySettings到你的项目的Assets目录的同级目录,并从Unity菜单栏的Icy分别打开Asset、UI、Proto、Config的Setting窗口,根据你项目的情况填入对应的设置
- 把PlayerSetting中的Api Compatibility Level设置为
.Net Framework
- 安装以下付费插件:
| 插件名称 | 描述 | Optionality | 版本号需求 | 插件安装后移动到此目录 |
|---|---|---|---|---|
| Odin | 强大的Editor扩展、Serializer | 必选 | 3.3.1.13+ | Icy/Assets /Plugins/Sirenix |
| SRDebugger | GM工具、运行时Console | 可选,如不需要可移除PlayerSetting中的ICY_USE_SRDEBUGGER宏 |
1.11.0+ | Icy/Packages /fun.program4.icy.gm /StompyRobot |
Icy依赖上述这些强大的付费插件,但为了避免侵权、违反许可协议不能直接提供,
请您按照上面提供的官方链接和版本号自行购买并导入;
标为可选的付费插件,如确定不需要,可以按提示移除;
How-Tos
(目前在集中推进Roadmap的实现,文档的完善会晚一些)
| 目标 | 描述 | 完成状态 |
|---|---|---|
| 集成UniTask | GC Free async/await方案 | ✔️ |
| 集成Protobuf | 高效二进制序列化 | ✔️ |
| 集成LitMotion | 高性能、Zero GC Alloc缓动效果库 | ✔️ |
| 集成Luban | 打表工具天花板 | ✔️ |
| 集成HybridCLR | 特性完整、高性能的全平台原生C#热更新方案 | ✔️ |
| 集成Obfuz | 和Unity深度集成的代码混淆方案 | 待开始 |
| 集成SRDebugger | GM工具、运行时Console | ✔️ |
| 集成ZString | Zero GC Alloc StringBuilder/Formatter | ✔️ |
| 集成LocalPreferences | 基于Json的本地存储,代替PlayerPrefs | ✔️ |
| Base-事件系统 | 基础事件系统 | ✔️ |
| Base-FSM | 有限状态机,附带一个状态切换可视化工具 | ✔️ |
| Base-Procedure | 基于FSM的顺序执行的流程 | ✔️ |
| Base-Log | 提供Log到文件、多线程Log | ✔️ |
| Base-PeriodicRecord | 方便的设置指定时间后过期的标志 | ✔️ |
| Base-其他 | Timer、Pool、Singleton、Blackboard、Utility 、UniTaskMonoBehaviour、MainThreadDispatcher等 |
✔️ |
| Asset-集成YooAsset | 非常好用的资源管理系统 | ✔️ |
| Asset-可定制的打包流程 | 配置驱动的打包流程,可插入自定义打包步骤 | ✔️ |
| Network-集成NativeWebSocket | 支持WebGL平台的开源WebSocket库 | ✔️ |
| Network-HTTP | 基于UnityWebRequest、HttpClient | ✔️ |
| Network-TCP | 基于.Net TCP | ✔️ |
| Network-KCP | 以速度著称的Reliable UDP | ✔️ |
| Network-WebSocket | 基于NativeWebSocket,支持WebGL平台 | ✔️ |
| UI-基础结构 | ✔️ | |
| UI-资源管理 | 基于YooAsset的UI Prefab、图集、Sprite管理 | ✔️ |
| UI-数据绑定 | 一个简单的数据绑定数据结构 | ✔️ |
| UI-TextEx | 待开始 | |
| UI-ButtonEx | 待开始 | |
| UI-ImageEx | 待开始 | |
| UI-本地化 | 待开始 | |
| UI-后退栈 | ✔️ | |
| UI-红点 | ✔️ | |
| UI-背景模糊 | ✔️ | |
| UI-状态记录组件 | 序列化进Prefab的UI状态记录, 支持一键切换多个UI节点的状态 |
待开始 |
| UI-集成UIEffect | 各种常用UI效果合集 | ✔️ |
| UI-集成UIParticle | 在UGUI上渲染粒子的工具 | ✔️ |
| UI-新手引导 | 待开始 | |
| Gameplay-基础数值系统 | 待开始 | |
| Gameplay-技能系统 | 待开始 | |
| Gameplay-换装系统 | 待开始 | |
| Editor-显示当前分支 | 在Editor左上角显示当前Git / SVN分支, 便于多开Unity项目时的识别 |
✔️ |
| Editor-Quick Play | 不 重新Reload Domain,快速进入Play, 整个Icy框架支持DisableDomainReload |
✔️ |
| Editor-集成Odin | 强大的Editor扩展、Serializer | ✔️ |
| Editor-集成ReferenceFinder | 资源引用和依赖查询工具 | ✔️ |
| Editor-资源托盘 | 暂存任意工程内文件,便于快速定位、打开 | ✔️ |
| Editor-C#热重载 | 待开始 |
本仓库中使用的各种插件仅做学习、示例目的使用,如要用在生产环境、商业项目下,请大家购买正版