# MyUnityFrameWork
Unity框架,组件可插拔,可视化编辑,代码自动生成。
包含资源加载,配置加载,数据加载,UI管理,音频管理,日志管理,动画系统,特效系统等,以及对应编辑器工具
支持Android、Ios、PC、WEBGL
项目中的Script/Core目录就是完整框架
[中文维基](https://github.com/GaoKaiHaHa/MyUnityFrameWork/wiki/%E9%A6%96%E9%A1%B5)
[English Wiki](https://github.com/GaoKaiHaHa/MyUnityFrameWork/wiki)
## 应用
1.快速配置开发模式和发布模式(开发模式资源直接从Resources文件夹加载,不需要重新打包)
2.支持快速定位到某一个游戏流程(某游戏场景,结算界面等),方便测试
3.开发模式支持运行时性能监控和Debug小窗。
4.提供Jenkins自动化打包接口ProjectBuildService ([打包教程](http://www.kisence.com/2017/06/01/shi-yong-jenkinsjin-xing-zi-dong-da-bao/) )
## 游戏流程管理
1.游戏逻辑入口从某一个游戏流程开始(创建一个流程继承IGameStatus,然后在ApplicationManager中选择它作为第一个流程)
2.提供测试接口,可传入测试数据,直接测试某一个流程不需要把游戏从头运行一次
3.游戏启动时允许呼出开发者控制台,在真机上定位问题更快捷(查看以往日志数据、复盘Bug操作等)
## 资源加载
1.可视化依赖包管理工具,打包进度可视,不再干等着了
2.Resource和AssetsBundle两种加载模式,简单切换开发与发布状态
3.统一加载接口,上层逻辑无需关心使用哪种方式加载资源
4.多种资源管理机制,读取效率与内存占用的平衡
# 热更新管理器
1.内置热更新流程
2.一行代码启动热更新,返回热更新进度和更新状态(界面可另行编写)
# Lua
1.集成uLua,并精简了一部分uLua代码
2.内置Lua设置编辑器
3.内置Lua库(UIManager,StatusManager,EvnetDispatcher,Timer等)
## 配置加载
1.一行代码读取和保存配置,方便快捷
2.可将类序列化保存到配置中,快速使用
3.配置可读可写
4.有对应的配置编辑器
## 数据加载
1.数据可使用默认值,可以让程序不用等策划,并且修改默认值非常方便
2.数据键值对方便拓展, 策划不用等程序
3.数据在运行时只读
4.支持一键生成对应的数据类对象,不需要手写查数据了
5.有对应的数据编辑器
## 持久化数据
1.游戏中产生的需要长期存放的数据可以放在这里
2.提供编辑器查看这些临时数据
## 游戏数据查看器
1.提供编辑器查看游戏中的数据,(适合用来实时查看非Monobehavior面板数据)
2.被查看的类只显示Public属性
## 输入管理器
1.将游戏中接收的所有输入统一管理(包括网络通讯,UI事件,键盘输入,随机数生成,SDK输入等),方便开发和重现BUG
## 联网系统
1.支持多种网络协议(目前只支持了TCP),可通过接口拓展
2.支持多种通讯类型(目前支持Json,protocol)
3.派发连接事件(成功、失败、断开等)
4.所有网络事件通过输入管理器管理
## UI系统
1.方便快捷的多语言管理方案
2.方便快捷的风格管理方案,一套风格,多处公用,一次修改
3.粒子系统和UI完美嵌套
4.支持3DUI和2DUI
5.支持浮动UI(血条,昵称等)
6.方便好用的事件系统
7.UI编辑工具
·方便地创建UIManager,设定分辨率,EventSystem等
·自动生成脚本以及UI
·支持编辑和使用UI预设模板,支持批量修改使用了模板的UI
·支持使用预设UIStyle,功能相近的UI使用同一套Style,并支持批量修改
8.多语言支持
9.方便好用的拓展组件
·重用Item的scrollRect,不会一下子加载太多item,节约性能。
·内置摇杆。
10.对新手引导做了内置支持
11.3D模型投射到UI上的工具
## 新手引导系统
1.内置了新手引导系统,并提供了接口支持拓展功能
2.可通过Tools->新手引导->初始化/创建预设 来初始化新手引导系统
·自动创建GuideWindow类
·自动创建GuideWIndow预设
·自动创建GuideData数据表
·自动创建Guide sortingLayer层(新手引导高亮的UI会放在这个层)
·(自动增加 sortingLayer 的代码,请看([教程](http://www.kisence.com/2017/06/28/unitytian-jia-sorting-layerde-fang-fa-2/) )
3.新手引导通过读取GuideData数据表提供功能
## 游戏对象管理器
1.方便加载游戏对象
2.内置对象池
## 反射查看器
1.可以浏览Unity的私有方法
2.支持一键生成调用私有方法代码
## Unity内置GUIStyle查看器
1.可以查看Unity内置GUIStyele,编辑器界面开发更方便
## Unity内置Icon查看器
1.可以查看Unity内置图标
## SDK管理器
1.预留登陆,支付,广告,事件上报以及其他事件接口
2.提供编辑器一键切换不同平台SDK设置以及插件库(现在SDKManager会直接替换Plugins文件夹)
3.SDK输入也交给InputManager管理
## 音频管理
1.总音量,音乐音量,音效音量控制
2.一行代码播放各种音乐音效
3.支持2D/3D音乐音效
## 开发者工具
1.收集关键日志和崩溃日志,发送给开发者,或者在真机下查看(日志在 persistent路径\Log文件夹下)
2.同时按下5根手指呼出游戏内控制台,监控帧率与内存使用量
3.框架内置复盘模式,重放Bug出现的所有输入,方便复现Bug,并支持导出操作记录
## 动画系统
1.支持UGUI动画,使用定位更精确
2.支持多种动画方式
3.支持贝塞尔曲线
4.支持多种插值类型
5.参照Itween,一行代码播放各种动画
6.更加方便的动画播放完毕回调
7.支持多种重复模式YoYo,reset等
8.支持延时播放动画
9.支持忽略TimeScale等多种播放方式
10.支持自定义传参函数
## 特效系统
1.提供各种预设特效,开发简单快捷
·震屏特效。
·屏幕淡入淡出特效。
2.内置特效LOD管理工具
## 其他功能
1.Timer
2.EventDispatch
3.HeapObjectPool
4.自动导入FBX到AnimatorControl
5.自动生成Protocol文件工具