ColaFrameWork
ColaFrameWork 自研Unity客户端框架
架构阶段,暂时没有项目使用过。
框架简介
项目手册
项目结构
游戏启动运行流程与机制
目前框架根据平台的不同,设计了不同的启动场景,分别命名为:
- GameLauncher(Windows平台)
- GameLauncherAndroid(Android平台)
无论启动场景是哪一个,游戏都由GameLauncher启动器脚本启动。GameLauncher为一个单例类,在游戏初始化的过程中,启动器类负责初始化GameManager、InputMgr、FpsHelper、DebuglogHelper、U3DAutomation、StreamingAssetHelper、多线程工具类等一些基础的操作。
在一些必要的资源准备妥当以后,会执行InitGameCore()方法,该方法会调用GameManager的InitGameCore()方法,进一步地进行初始化一些次要的管理器与资源。
在GameLauncher类中,会主动调用GameManager的Update、LateUpdate、FixedUpdate、ApplicationQuit等类似于MonoBehaivor中的方法,这让您依然可以自由地在这些方法中进行处理自己的相应逻辑。
数据节点管理
- CSV&C#版数据节点管理
策划使用Excel表进行数据的配置,然后通过转表工具(位于ColaFrameWork\Tools\XlsxTools\xls2csv目录下,内有详细的使用指南)将Excel表转为csv结构的数据结构供客户端读取。 每一份csv数据表,都应对应一个数据解析类以及一个数据集合类,其中数据解析类用于解析并存储csv中的单条数据(一行),数据集合类将存储多个数据解析类的对象。 数据解析类都应继承自 LocalDataBase (本地数据表中的单条数据的抽象基类):
/// <summary>
/// 本地数据表中的单条数据的抽象基类
/// </summary>
public abstract class LocalDataBase
{
/// <summary>
/// ID
/// </summary>
public int id;
/// <summary>
/// 初始化数据
/// </summary>
/// <param name="strData"></param>
public abstract void InitWithStr(string strData, char splitChar = ',');
/// <summary>
/// 得到Int数据
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
protected int GetInt(string str)
{
if (!string.IsNullOrEmpty(str))
{
return int.Parse(str);
}
return 0;
}
/// <summary>
/// 得到float数据
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
protected float GetFloat(string str)
{
if (!string.IsNullOrEmpty(str))
{
return float.Parse(str);
}
return 0;
}
/// <summary>
/// 得到bool数据
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
protected bool GetBool(string str)
{
if (!string.IsNullOrEmpty(str))
{
return bool.Parse(str);
}
return false;
}
}LocalDataBase 该抽象类提供了一些基本的数据类型转换方法,id字段用来存储索引id,InitWithStr接口用来解析数据,将数据表中的单行文本传入到该接口以后,通过splitChar标识将数据进行拆分、解析。框架中已经包含了I18NData解析类,编写其他数据解析类时可以参考此类。
数据集合类都应实现 ILocalDataMapBase 接口(DataMap,数据集合的接口,实现该接口用于管理LocalDataBase)
/// <summary>
/// DataMap,数据集合的接口,实现该接口用于管理LocalDataBase
/// </summary>
public interface ILocalDataMapBase
{
/// <summary>
/// 对多行字符串进行处理,保存成LocalDataBase集合
/// </summary>
/// <param name="rows"></param>
void SetMapCsv(string[] rows);
}ILocalDataMapBase 接口内只有一个 void SetMapCsv(string[] rows) 抽象方法,该方法用来对多行字符串进行处理,保存成LocalDataBase集合。 框架中已经包含了I18NDataMap数据集合类,编写其他数据集合类时可以参考此类。
- LuaConfig&Lua版数据结构管理
事件/消息处理中心(Controller层)
待补充
UI框架(View层)
待补充
SubSys系统框架(Module层)
待补充
Execl策划表格规范与转表
待补充
资源管理
待补充
编辑器拓展与工具
待补充
游戏自动化测试
框架中集成了WETEST_SDK,通过使用GAutomator实现Unity手游的UI自动化测试。
DebugLog与日志
待补充
网络通信与协议
待补充
