ColaFramework 一款简洁的MVC结构的Unity客户端框架,尤其支持快速开发3D战斗卡牌和mmo类型的游戏。目前已经接入了Tolua,进行Lua层的架构工作。暂时还不支持热更,下一步准备完善这方面的内容,希望有兴趣的可以一起来维护。
马三把近一个月内要开发的任务都放在本项目的敏捷开发面板中了。可以直接按照下面的方式查看看板中的开发计划与进度。
- Unity2018.2.3
- VS2017
- C# & Lua
可以选择以下安装方式集成本框架:
- Clone本项目到本地,与自己的代码融合或者直接在框架基础上进行开发
目前框架根据平台的不同,设计了不同的启动场景,分别命名为:
- GameLauncher(Windows平台)
- GameLauncherAndroid(Android平台)
无论启动场景是哪一个,游戏都由GameLauncher启动器脚本启动。GameLauncher为一个单例类,在游戏初始化的过程中,启动器类负责初始化GameManager、InputMgr、FpsHelper、DebuglogHelper、U3DAutomation、StreamingAssetHelper、多线程工具类等一些基础的操作。
在一些必要的资源准备妥当以后,会执行InitGameCore()方法,该方法会调用GameManager的InitGameCore()方法,进一步地进行初始化一些次要的管理器与资源。
在GameLauncher类中,会主动调用GameManager的Update、LateUpdate、FixedUpdate、ApplicationQuit等类似于MonoBehaivor中的方法,这让您依然可以自由地在这些方法中进行处理自己的相应逻辑。
ColaFramework框架提供了CSV版本和原生lua版本的数据配置表管理,可以根据自己的实际需要进行选择。
详情请见数据配置表管理Wiki页面
框架支持C#版和Lua版两套消息监听与派发机制,用来充当普通的Controller层,用于V和M的解耦等操作。具体的实现原理和用法可以看以下这篇博客:
【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher
ColaFrameWork框架在UI开发方面提供了编辑器拓展。通过编辑器可以快速通过模版创建新的UIView类、Module类。也可以新建新的UI模版,支持C#和Lua模板。
详见Wiki页面
Module的基类为ModuleBase,游戏内所有的系统的业务逻辑层均继承自该类。框架采用厚Module类型的MVC结构,弱化了C层的作用,强化了M层。游戏中的业务逻辑大部分都放在M层进行处理处理。M层负责处理业务逻辑、监听网络消息、请求网络消息、派发事件通知其他模块或者UI等更新。M层不应该了解View层的存在,不可以直接调用View层,应该通过消息机制通知View做出动作。
分别支持C#端的和lua端的组件获取,详见组件与实体获取wiki页面
本框架支持将Excel表格转为csv和lua原生格式的配置数据文件,详见Execl策划表格规范与转表Wiki页面
资源管理这部分准备用一套成熟的第三方框架代替自研。
简介
本插件基于blueberryzzz大佬 的 ReferenceFinder插件改造得来。感谢blueberryzzz大佬的无私分享!
这是一个用来查找资源引用和依赖的插件,通过缓存来保存资源间的引用信息,通过树状结构直观的展示。
由于是通过缓存进行实现的,所以在希望的到精确的引用信息时需要刷新缓存。不过由于缓存的存在,在资源改动较少的情况下,刷新速度较快,对使用影响较小。
直接将文件夹拖到项目中即可使用。
详情请点击 ReferenceFinder Wiki页面
待补充
框架中集成了WETEST_SDK,通过使用GAutomator实现Unity手游的UI自动化测试。
TODO:对网易的自动化测试解决方案做一些调研传送门
ColaFramework中的Debuglog与日志相关内容请查看Debuglog与日志Wiki页面
待补充
ColaFramework框架目前集成了AStar、Recast两种寻路系统。
ColaFramework框架集成了DoTween、iTween两款比较常见的插值动画/缓动动画插件,并且自己拓展封装了适合UGUI的UGUITween组件,可以像NGUI中的Tween一样使用,非常方便,用来解决一些简单的Tween动画效果再合适不过了。
其中拓展UGUITween组件包含以下几个常用的Tween组件:
- UGUITweenScale
- UGUITweenPosition
- UGUITweenAlpha
- UGUITweenRotation