All Projects → XINCGer → Colaframework

XINCGer / Colaframework

Licence: mit
ColaFrameWork 一个Unity客户端框架

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Colaframework

Crystalai
A Utility AI for C# and Unity
Stars: ✭ 328 (-2.67%)
Mutual labels:  unity, game-development
Gamedev Resources
An updated collection of useful resources to resources to design, develop and market games.
Stars: ✭ 219 (-35.01%)
Mutual labels:  unity, game-development
Fluent State Machine
Fluent API for creating state machines in C#
Stars: ✭ 195 (-42.14%)
Mutual labels:  unity, game-development
Rimlight
Customizable rimlight shader for Unity that includes pulsation and noise scrolling. Give your scenes that extra oomph!
Stars: ✭ 170 (-49.55%)
Mutual labels:  unity, game-development
Ecsrx
A reactive take on the ECS pattern for .net game developers
Stars: ✭ 288 (-14.54%)
Mutual labels:  unity, game-development
Unity Design Pattern
🍵 All Gang of Four Design Patterns written in Unity C# with many examples. And some Game Programming Patterns written in Unity C#. | 各种设计模式的Unity3D C#版本实现
Stars: ✭ 2,600 (+671.51%)
Mutual labels:  unity, game-development
Delight
Delight is an open source component-oriented framework for Unity.
Stars: ✭ 201 (-40.36%)
Mutual labels:  unity, game-development
Unityfx.async
Asynchronous operations (promises) for Unity3d.
Stars: ✭ 143 (-57.57%)
Mutual labels:  unity, game-development
Merino
Merino is a narrative design tool that lets you write Yarn scripts inside the Unity Editor
Stars: ✭ 275 (-18.4%)
Mutual labels:  unity, game-development
Noahgameframe
A fast, scalable, distributed game server engine/framework for C++, include the actor library, network library, can be used as a real time multiplayer game engine ( MMO RPG/MOBA ), which support C#/Lua script/ Unity3d, Cocos2dx and plan to support Unreal.
Stars: ✭ 3,258 (+866.77%)
Mutual labels:  unity, game-development
Unity resources
A list of resources and tutorials for those doing programming in Unity.
Stars: ✭ 170 (-49.55%)
Mutual labels:  unity, game-development
Gdk For Unity
SpatialOS GDK for Unity
Stars: ✭ 296 (-12.17%)
Mutual labels:  unity, game-development
Unitypausemenu
This is an open source Unity pause menu created for the game New Horizons, and it's completely free because of how a pause menu is a core component of a game, while the unity asset store was lacking in such an asset (until this was released on the asset store).
Stars: ✭ 160 (-52.52%)
Mutual labels:  unity, game-development
Deadsimple Pixel Perfect Camera
An exceedingly easy-to-use pixel perfect orthographic camera script for 2D scenes in Unity. Punch in a few specs and you've got a working pixel perfect camera. It's that easy.
Stars: ✭ 186 (-44.81%)
Mutual labels:  unity, game-development
Swissarmylib
Collection of helpful utilities we use in our Unity projects.
Stars: ✭ 154 (-54.3%)
Mutual labels:  unity, game-development
Unity Shaders
✨ Shader demo - More than 300 examples
Stars: ✭ 198 (-41.25%)
Mutual labels:  unity, game-development
Gdk For Unity Fps Starter Project
SpatialOS GDK for Unity FPS Starter Project
Stars: ✭ 119 (-64.69%)
Mutual labels:  unity, game-development
Arcadia
Clojure in Unity
Stars: ✭ 1,596 (+373.59%)
Mutual labels:  unity, game-development
Gameframework
This is literally a game framework, based on Unity game engine. It encapsulates commonly used game modules during development, and, to a large degree, standardises the process, enhances the development speed and ensures the product quality.
Stars: ✭ 3,318 (+884.57%)
Mutual labels:  unity, game-development
Libplanet
Blockchain core in C#/.NET for persistent peer-to-peer online games
Stars: ✭ 293 (-13.06%)
Mutual labels:  unity, game-development

ColaFrameWork Unity客户端框架

框架简介

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

关于精简版

ColaFramework内置了较多的插件,本意是借助插件提高开发速度,如果感觉插件过多造成了干扰,只想使用ColaFramework的最核心功能的话,可以使用tiny精简版
精简版仅保留了DoTween和ToLua#这两个最基本的插件/库,当然精简版中仍然是需要Odin的。

开发计划

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

开发环境

  • 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这个内存池和资源跟踪层去获取和归还对象
具体的API接口设计如下:

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

简介
本插件基于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

友情链接

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].