Simple and powerful Unity3d game workflow!  简单、高效、高度工业化的商业级unity3d 工作流。
![logo.png](https://cdn.nlark.com/yuque/0/2022/png/338267/1649684734342-74b652a1-d03a-4b8a-b78b-9fe82f1c9ed8.png#clientId=uc33e9e9d-324b-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=136&id=ubbf7265c&margin=%5Bobject%20Object%5D&name=logo.png&originHeight=235&originWidth=923&originalType=binary&ratio=1&rotation=0&showTitle=false&size=28428&status=done&style=shadow&taskId=u199e20dc-ebb8-4095-9235-befea9ca47a&title=&width=532.9960632324219)<br />[![](https://camo.githubusercontent.com/ad53edcf98cb738e703fb694c5f465ad2f9fc58ea30287cec6e924eb9f3d9247/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f636f6d2e706f706f2e62646672616d65776f726b3f6c6162656c3d6f70656e75706d2672656769737472795f7572693d68747470733a2f2f7061636b6167652e6f70656e75706d2e636f6d#crop=0&crop=0&crop=1&crop=1&from=url&id=CKHaa&margin=%5Bobject%20Object%5D&originHeight=20&originWidth=106&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)](https://openupm.cn/packages/com.popo.bdframework/) [![](https://camo.githubusercontent.com/8e53c4e75f0baf3b1cb6815fef6dc3648d0bb6b0d5fcda5a82a88b678893caf8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d416e74692532303939362d626c75652e7376673f7374796c653d666c61742d737175617265#crop=0&crop=0&crop=1&crop=1&from=url&id=ACfdn&margin=%5Bobject%20Object%5D&originHeight=20&originWidth=104&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)](https://github.com/996icu/996.ICU/blob/master/LICENSE) [![](https://camo.githubusercontent.com/3e8b8686464bdeeef002f8f8ff1883c5a713366d58360ab9a61dbab60a2eb1f0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c696e6b2d3939362e6963752d2532334646344435422e7376673f7374796c653d666c61742d737175617265#crop=0&crop=0&crop=1&crop=1&from=url&id=RnsS9&margin=%5Bobject%20Object%5D&originHeight=20&originWidth=80&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)](https://996.icu/#/zh_CN) [![](https://camo.githubusercontent.com/f42c312e343cae055acb79039d4671e3ba2c8bf22c20cc2321271d778bd57542/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f79696d656e6766616e2f42444672616d65776f726b2e436f7265#crop=0&crop=0&crop=1&crop=1&from=url&id=Wh0bY&margin=%5Bobject%20Object%5D&originHeight=20&originWidth=120&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)](https://github.com/yimengfan/BDFramework.Core/blob/master/LICENSE)
<a name="JYyl0"></a>
# 作者寄语(Introduction)

Simple! Easy! Professional! This‘s a powerful Unity3d game workflow!<br />BDFramework的设计理念永远是：**工业化、流水线化、专业化！**<br />永远致力于打造高效的商业游戏工作流.<br />BDFramework大部分功能开发都是围绕一整条工作流，以**Pipeline**的形式放出.<br />如:**BuildPipeline、PublishPipeline、DevOps** 等...<br />对于第三方库使用也都是为了Pipeline深度定制，很多时候为了一些使用体验优化会编写大量的Editor编码.<br />这也是BDFramework的设计理念之一：<br />**能编辑器解决的，就不要业务层解决！能自动化的，就不要手动!**<br />BDFramework没有什么看上去很酷炫的功能，大都是一点一滴的积累，一点点的增加自动化，一点点的增加业务编码的体验.也正是因为有这样的坚持，才会有这套框架的出现.<br />更多的是做一些商业技术方案的分享和讨论.<br />因为一些特殊原因，只能放出一些游戏基建方案Pipeline的实现，<br />不会有对具体业务逻辑的解决方案，所以整套workflow更像是一套游戏开发脚手架.<br />望理解！<br />最后,<br />虽然该框架能开箱即用，但我个人建议且鼓励 ：**进行自己的思考，并为自己项目进行改造！**<br />有任何疑问也欢迎讨论~
<a name="CDDBb"></a>
# 社区(Community)

<a name="rwqWf"></a>
**在线discussions** [点击](https://github.com/yimengfan/BDFramework.Core/discussions)  
#### 第九第十艺术交流:184111890 （QQ Group:184111890）  [点击加群](https://jq.qq.com/?_wv=1027&k=OSxzhgK4)
If you find a bug or have some suggestions,please make issue! I'll get back to you!<br />任何问题直接提issue,24小时内必解决 （有时候邮件抽风，没收到，需要在群里at下我~）<br />github地址: [https://github.com/yimengfan/BDFramework.Core](https://github.com/yimengfan/BDFramework.Core)<br />gitee地址: [https://gitee.com/yimengfan/BDFramework.Core](https://gitee.com/yimengfan/BDFramework.Core) (国内比较快)  

<a name="UpQig"></a>
# 文档(Document)

[**中文 Wiki**](https://www.yuque.com/naipaopao/eg6gik)
<a name="sVFFi"></a>
#### [English Wiki](http://www.nekosang.com/)
<a name="Am01R"></a>
#### [视频教程（video）](https://www.bilibili.com/video/av78814115/)
<a name="YTPRV"></a>
#### [博客（Blog）](https://zhuanlan.zhihu.com/c_177032018)

<a name="HbQIU"></a>  
# 发布（Publish）

<a name="ZnfmW"></a>
### [Release版本](https://github.com/yimengfan/BDFramework.Core/releases)

注:所有bug修复和新特性加入会先提交到Master分支。待审核期通过，稳定则会发布Release版本

<a name="eTY04"></a>
### Unity3d支持(Unity3d Support )

<a name="tVsZB"></a>
#### Unity2018 - [ObsoleteBranch](https://github.com/yimengfan/BDFramework.Core/tree/2018.4.23LTS)
<a name="KksVM"></a>
#### _Unity2019 - Master_ （推荐）
<a name="zbYcr"></a>
#### Unity2020 - [TestBranch](https://github.com/yimengfan/BDFramework.Core/tree/2020.4LTS)
<a name="J516L"></a>
#### Unity2021 - [TestBranch](https://github.com/yimengfan/BDFramework.Core/tree/2021.2.13f1)
版本开发流程：<br />=》修改、Fixed bug、新功能加入 基于**Master（目前为Unity2019）**<br />=》Merge to Unity2020 、Unity2021测试
<a name="KgTix"></a>
## V2.1版本:

<a name="cCRDG"></a>
#### -增加BuildPipeline！
<a name="djGGK"></a>
#### -增加PublishPipeline！
<a name="ZlwLG"></a>
#### -增加HotfixPipeline！
<a name="cRXGd"></a>
#### -全面支持DevOps工作流.

<a name="POKmD"></a>
## V2版本:
<a name="Ntb9l"></a>
#### 1.全面升级为UPM管理: [urp版本安装引导](https://www.yuque.com/naipaopao/eg6gik/xy8dm4)
<a name="gVc3P"></a>
#### 2.全面适配URP管线工作流
<a name="ZGUIj"></a>
#### 3.全面定制Unity Editor环境，升级编辑器操作。更便捷、人性化的开发体验
<a name="Tx18X"></a>
#### 4.全面优化框架启动速度,重构部分远古代码。
<a name="f0nHB"></a>
#### 5.UFlux UI工作流全面升级：更智能的值绑定、更简单的工作流、更方便的自定义扩展、DI等...
<a name="UCGPm"></a>
#### 6.更全面的文档
<a name="AtPY4"></a>
#### 7.商业级的Demo加入，后续会开放免费商业级项目开发教程

<a name="zmnID"></a>
## V1版本：
<a name="egIJX"></a>
### C#热更(C# hotfix):

- 自定义编译服务
- 可选工程剥离(热更可以不拆工程)
- 一键打包热更DLL
- 兼容DevOps、CI、CD.
<a name="nPrZv"></a>
### 表格管理(Table Manage):

- Excel一键生成Class
- Excel一键生成Sqlite、Json、Xml等
- 服务器、本地表格分开导出.
- 自定义配置保留字段、单条记录等.
- SQLite ORM工具(兼容热更)
- 自定义表格逻辑检测.
- 兼容DevOps、CI、CD.
<a name="nzWwO"></a>
### 资源管理（Assets Manage）:

- 重新定制目录管理规范、指导管理.
- 一套API自动切换AB和Editor模式，保留Resources.load习惯.
- 可视化连线打包逻辑、0冗余打包.
- 可扩展打包规则
- 分包机制.
- 打包逻辑纠错机制.
- 内置增量打包机制，防止不同机器、工程打包AB不同情况.
- 自动图集管理.
- 自动搜集Shader  Keyword.
- 可寻址加载系统.
- Assetbundle混淆机制，一定程度下防破解资源.
- Assetbundle 同、异步加载校验.
- Assetbundle 加载性能测试.
- Editor下完整支持
- 兼容DevOps、CI、CD.
<a name="vZ1Sq"></a>
### 一键版本发布（Publish）:

- 代码、资源、表格一键打包,版本管理自动下载.
- 内置本机文件服务器
- 兼容DevOps、CI、CD.

<a name="USJsq"></a>
### UI工作流(UFlux):

- 提供一套Flux ui管理机制(类似MVI)
- 完善的UI管理,可配合任意NGUI、UGUI、FairyGUI等使用
- 完整的UI抽象：Windows、Component、State、Props...
- 支持UI管理、值绑定、数据监听、数据流、状态管理等
- 支持DI依赖注入.

<a name="xbVI7"></a>
### 业务管理（Logic Manage）:

- 管理器和被管理类自动注册
- 在此之上BD实现了ScreenviewManger,UIManager,EventManager...等一些管理器.使用者根据自己的需求可以实现其他的管理器.
- Editor下完整支持.

<a name="U7Z68"></a>
### 导航机制（Navication）:

- 模块、用户Timeline等导航机制.
- 方便做模块调度、划分等逻辑...

<a name="XD9Xc"></a>
### 全面定制Editor:

- 提供完整的编辑器生命周期，方便可定制、拓展.
- **完整的测试用例，保证框架的稳定.**
- 所有功能全面兼容DevOps、CI、CD等工具.
- 其他大量的定制Editor，以保证使用体验...(太多了统计不过来)

**有很多细枝末节的系统就不列举了...**

<a name="B34PH"></a>
# 安装使用(Start)

<a name="LVozC"></a>
#### OpenUPM(强烈推荐)： 
<a name="IPx5B"></a>
#### [链接](https://www.yuque.com/naipaopao/eg6gik/xy8dm4)
<a name="oGh5G"></a>
#### Release版：
**使用Open UPM更新框架：**<br />Step：

- open **Edit/Project Settings/Package Manager**
- add a new Scoped Registry (or edit the existing OpenUPM entry)
   - **Name** package.openupm.cn
   - **URL** [https://package.openupm.cn](https://package.openupm.cn/)
   - **Scope(s)** com.ourpalm.ilruntime 、com.popo.bdframework
- click Save (or Apply)

Then open the "**Package Manger"** editor windows. Switch menuitem to "**My Registries** ". You can see the BDFramework ,you can select the new version.<br />[![](https://camo.githubusercontent.com/baa458f5ab7bf39c7465812d5190ca750e38d0aa034206e34e99c138d23b079c/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f3333383236372f313633393830393230353935322d34393231343461352d356431632d346431622d386137332d6536636332643734383262372e706e6723636c69656e7449643d7531313933303662342d366432622d342663726f703d302663726f703d302663726f703d312663726f703d312666726f6d3d7061737465266865696768743d3232362669643d756335643739656439266d617267696e3d2535426f626a6563742532304f626a656374253544266e616d653d696d6167652e706e67266f726967696e4865696768743d343532266f726967696e57696474683d343032266f726967696e616c547970653d62696e61727926726174696f3d3126726f746174696f6e3d302673686f775469746c653d66616c73652673697a653d3331393336267374617475733d646f6e65267374796c653d6e6f6e65267461736b49643d7564636166383936322d656432332d343065332d396438332d3537383437633861333766267469746c653d2677696474683d323031#crop=0&crop=0&crop=1&crop=1&from=url&id=IhWR8&margin=%5Bobject%20Object%5D&originHeight=452&originWidth=402&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=shadow&title=)](https://camo.githubusercontent.com/baa458f5ab7bf39c7465812d5190ca750e38d0aa034206e34e99c138d23b079c/68747470733a2f2f63646e2e6e6c61726b2e636f6d2f79757175652f302f323032312f706e672f3333383236372f313633393830393230353935322d34393231343461352d356431632d346431622d386137332d6536636332643734383262372e706e6723636c69656e7449643d7531313933303662342d366432622d342663726f703d302663726f703d302663726f703d312663726f703d312666726f6d3d7061737465266865696768743d3232362669643d756335643739656439266d617267696e3d2535426f626a6563742532304f626a656374253544266e616d653d696d6167652e706e67266f726967696e4865696768743d343532266f726967696e57696474683d343032266f726967696e616c547970653d62696e61727926726174696f3d3126726f746174696f6e3d302673686f775469746c653d66616c73652673697a653d3331393336267374617475733d646f6e65267374796c653d6e6f6e65267461736b49643d7564636166383936322d656432332d343065332d396438332d3537383437633861333766267469746c653d2677696474683d323031)
<a name="oo6oU"></a>
#### Master版（紧急修复bug or 自行修改版）:

手动将框架放置在Package目录下 <br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/338267/1652974827438-46dae355-b6f7-4a50-b068-4231c2d2bede.png#clientId=u601d31b3-c056-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=303&id=ucdfd0f6c&margin=%5Bobject%20Object%5D&name=image.png&originHeight=478&originWidth=710&originalType=binary&ratio=1&rotation=0&showTitle=false&size=22744&status=done&style=shadow&taskId=ub7cee2b7-77bc-447a-be8e-b6d2676bb46&title=&width=450.7936712655721)<br />ps:只移动**com.popo.bdframework文件夹**到自己项目Package目录即可 

<a name="t2U6E"></a>
# 项目实践流程：

![image.png](https://cdn.nlark.com/yuque/0/2022/png/338267/1649685339014-bc9ded1a-4301-47b9-9c08-0a4553fa0cfe.png#clientId=u9bf72c99-cdb1-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=808&id=u88225e38&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1272&originWidth=2889&originalType=binary&ratio=1&rotation=0&showTitle=true&size=179957&status=done&style=shadow&taskId=ubb1d6962-e623-407b-b35e-4fc35f226d9&title=%E5%8D%8A%E7%83%AD%E6%9B%B4&width=1834.2857975862503 "半热更")
<a name="BBlYB"></a>
# Demo：

九宫棋（带一套精简的技能系统）:[https://gitee.com/yimengfan/TheCatChess](https://gitee.com/yimengfan/TheCatChess)

<a name="d2KC6"></a>
# 贡献者名单

[@gaojiexx](https://github.com/gaojiexx)  <br />[@ricashao](https://github.com/ricashao)  <br />[@瞎哥](https://github.com/AfarMiss)  <br />如果需要项目方案定制、企业支持,可以联系 QQ:755737878  <br />也随时欢迎交流各种技术.  

如果您有好的修改或者拓展，也随时欢迎讨论和提PR.
 
