ColaFrameWork

by XINCGer

XINCGer / ColaFrameWork

ColaFrameWork 一个Unity客户端框架

277 Stars 63 Forks Last release: Not found MIT License 661 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

ColaFrameWork Unity客户端框架

框架简介

ColaFramework 一款简洁的MVC架构的Unity客户端框架。支持Lua开发和资源热更新,自带版本管理和简易服务器。适合新手入门学习或用于中小团队开发。

开发计划

马三把近一个月内要开发的任务都放在本项目的敏捷开发面板中了。可以直接按照下面的方式查看看板中的开发计划与进度。

开发环境

  • Unity2018.2.3
  • VS2017
  • C# & Lua
  • 项目依赖Odin插件,出于版权原因,Odin并未集成进项目内,需要自行下载Odin并导入

安装集成

可以选择以下安装方式集成本框架: * Clone本项目到本地,与自己的代码融合或者直接在框架基础上进行开发

配套视频教程

项目手册

项目结构  

游戏启动运行流程与机制  

目前框架的启动场景为:

  • GameLauncher
    游戏由GameLauncher启动器脚本启动。GameLauncher为一个单例类,在游戏初始化的过程中,启动器类负责初始化GameManager、InputMgr、FpsHelper、DebuglogHelper、U3DAutomation、StreamingAssetHelper、多线程工具类等一些基础的操作。
    在一些必要的资源准备妥当以后,会执行InitGameCore()方法,该方法会调用GameManager的InitGameCore()方法,进一步地进行初始化一些次要的管理器与资源,并且启动Lua虚拟机,加载Lua的入口函数。 在GameLauncher类中,会主动调用GameManager的Update、LateUpdate、FixedUpdate、ApplicationQuit等类似于MonoBehaivor中的方法,这让您依然可以自由地在这些方法中进行处理自己的相应逻辑。


数据配置表管理

ColaFramework框架提供了CSV版本和原生lua版本的数据配置表管理,可以根据自己的实际需要进行选择。
详情请见数据配置表管理Wiki页面

事件/消息处理中心

框架支持C#版和Lua版两套消息监听与派发机制,可以派发消息,用于V、M和C之间的解耦和消息监听等操作。具体的实现原理和用法可以看以下这篇博客:
【Unity游戏开发】用C#和Lua实现Unity中的事件分发机制EventDispatcher

UI框架(View层)

  • UI工作流程

  • UI主要方法

    #### 在ColaFramework框架中通过编辑器提高UI开发效率
    ColaFrameWork框架在UI开发方面提供了编辑器拓展。通过编辑器可以快速通过模版创建新的UIView类、Module类。也可以新建新的UI模版,支持C#和Lua模板。
    详见Wiki页面

系统框架(Module层)

Module的基类为ModuleBase,游戏内所有的系统的业务逻辑层均继承自该类。框架采用厚Module类型的MVC结构,弱化了C层的作用,强化了M层。游戏中的业务逻辑大部分都放在M层进行处理处理。M层负责处理业务逻辑、监听网络消息、请求网络消息、派发事件通知其他模块或者UI等更新。M层不应该了解View层的存在,不可以直接调用View层,应该通过消息机制通知View做出动作。

组件与实体获取

分别支持C#端的和lua端的组件获取,详见组件与实体获取wiki页面

Execl策划表格规范与转表

本框架支持将Excel表格转为csv和lua原生格式的配置数据文件,详见Execl策划表格规范与转表Wiki页面

资源管理

AssetBundle的加载与管理是基于xasset
在上层是AssetTrackMgr和ContainerPool,内存池和资源跟踪层,它一套弱引用+引用计数原理的资源管理层
Lua层和C#业务逻辑层统一都通过AssetTrackMgr这个内存池和资源跟踪层去获取和归还对象

资源引用查找与依赖关系分析插件

简介
本插件基于blueberryzzz大佬ReferenceFinder插件改造得来。感谢blueberryzzz大佬的无私分享!
这是一个用来查找资源引用和依赖的插件,通过缓存来保存资源间的引用信息,通过树状结构直观的展示。
由于是通过缓存进行实现的,所以在希望的到精确的引用信息时需要刷新缓存。不过由于缓存的存在,在资源改动较少的情况下,刷新速度较快,对使用影响较小。
直接将文件夹拖到项目中即可使用。
详情请点击 ReferenceFinder Wiki页面

编辑器拓展与工具

可视化的EditorWindow应继承自

EditorWindowBase
基类,Inspector编辑拓展应继承自
InspectorBase
基类
也可以直接使用继承自Odin的编辑器类进行拓展,这样会更方便一些

DebugLog与日志

ColaFramework中的Debuglog与日志相关内容请查看Debuglog与日志Wiki页面

日志控制台拓展

ColaFramework框架提供了LogCat日志控制台拓展,通过它开发者可以很方便地在Unity编辑器内部查看来自Android平台下游戏的日志。它可以让你忽略AndroidStudio的存在,直接在Unity中查看筛选日志,做到无缝对接。详情查看Wiki页面
Initial window
ColaFramework框架提供了Editor Console Pro插件,功能比原生的Console强大一些。点击错误信息会打开代码编辑器,并在编辑器中高亮显示出错的代码片段。虽然Unity自带的控制台已经可以满足一些常用需求,但结合一些高级功能会更加有助于项目调试,例如直接在控制台显示代码所在位置并且高亮。一个很重要的区别是:在Editor Console Pro中,出错的源代码会被直接显示在窗口中,一目了然,方便开发者直接定位出错的地方。更多介绍可以看这个文档: Unity插件推荐Editor Console Pro

网络通信与协议  

框架采用TCP网络连接,协议采用的是sproto协议,C#层封装了相关API,Lua层负责调用接口和注册回调,C#中主要是SocketManger和MessageCenter这两个类。SocketManger主要封装了网络的连接、断开、消息的发送与接收。 MessageCenter相当于一个网络消息缓存中心,用于分帧处理网络消息并抛到Lua层执行对应的handle函数。

寻路系统

ColaFramework框架目前集成了AStar、Recast两种寻路系统。

插值动画/缓动动画

ColaFramework框架集成了DoTween、iTween两款比较常见的插值动画/缓动动画插件,并且自己拓展封装了适合UGUI的UGUITween组件,可以像NGUI中的Tween一样使用,非常方便,用来解决一些简单的Tween动画效果再合适不过了。
其中拓展UGUITween组件包含以下几个常用的Tween组件:

  • UGUITweenScale
  • UGUITweenPosition
  • UGUITweenAlpha
  • UGUITweenRotation

命名空间

ColaFramework中框架级的Core源码都从属于ColaFramework命名空间,一些过时的、被废弃的插件会被移动到Abandoned目录下,命名空间也会变为ColaAbandoned,并且被打上

[Obsolete]
标记,表明该模块已被废弃。

联系方式

  • QQ群:421527940

友情链接

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.