更新日期:2019年12月19日。
Github源码:[点我获取源码]
索引
Main主程序简介
Main为框架的主模块,提供访问其他模块的快捷接口,还支持快捷设置脚本定义、指定全局主要数据类、设置项目授权、以及配置全局参数等。
使用Main
框架生命周期
框架生命周期函数如下(Module代表内置模块和自定义模块,MonoBehaviour代表常规脚本的生命周期):
主循环
如果想要将自己的代码加到全局主循环中,如下调用:
private void Start()
{
Main.Current.LogicLoop += MyLoop;
Main.Current.LogicFixedLoop += MyFixedLoop;
}
private void MyLoop()
{
//Do something......
}
private void MyFixedLoop()
{
//Do something......
}
注意:当框架暂停时,主循环也将暂停!如下调用即可暂停框架!当框架暂停时,每个模块都会受到不同程度的影响,这取决于该模块具体的实现。
Main.Current.Pause = true;
调用其他模块
调用其他任何主要模块都将从Main开始,可以直接输入m_以筛选出框架中所有主要模块。
也可以使用如下方式:
//获取FSM模块
Main.Current.GetInternalModule(HTFrameworkModule.FSM);
Scripting Define 脚本定义
在这里设置全局脚本定义。
点击New按钮,输入名称后再点击OK按钮,最后再点击Apply应用按钮,即可添加新的脚本定义,如下添加一个脚本定义Client。
在代码中判断这个脚本定义。
private void Start()
{
//如果定义了Client
#if Client
GlobalTools.LogInfo("这里是客户端!");
#endif
}
Main Data 全局数据
在这里设置全局数据类。
新建类GameData,并继承至MainDataBase,作为我们的全局数据类。(全局数据类理应只用作数据存储,逻辑代码尽量不要放在其中)
/// <summary>
/// 游戏数据
/// </summary>
public class GameData : MainDataBase
{
public string Version;
/// <summary>
/// 框架初始化时
/// </summary>
public override void OnInitialization()
{
Version = "1.0.0";
}
/// <summary>
/// 框架准备时
/// </summary>
public override void OnPreparatory()
{
}
}
在面板指定全局数据类。
此时我们运行程序,框架中就已经拥有了一个全局数据类对象,获取全局数据的方式很简单,如下。
//获取全局数据
GameData data = Main.Current.GetMainData<GameData>();
GlobalTools.LogInfo(data.Version);
License 授权许可
请参阅如下文章:【Unity】 HTFramework框架(三十二)授权验证
Parameter 全局参数
这里可以配置全局参数,如下配置了一个DataSet(数据集)参数,和一个String(字符串)参数。
点击New按钮可以新建参数,目前支持的参数类型为大部分常见类型。
获取全局参数的方式也非常简单,如下。
//获取全局参数 - 远程服务器地址
if (Main.Current.IsExistParameter("远程服务器地址"))
{
string serverUrl = Main.Current.GetStringParameter("远程服务器地址");
}
//获取全局参数 - 第一关配置文件
if (Main.Current.IsExistParameter("关卡配置表"))
{
DataSetBase dataSet = Main.Current.GetDataSetParameter("关卡配置表");
}
Setting 环境设置
这里可以进行一些针对此项目的环境设置,目前只有Log类型的设置分栏,在框架中只有三种等级的日志,常规日志Info,警告日志Warning,错误日志Error,在这里分别可以开启或关闭这三种日志的打印接口:
注意:建议您在任何部位都使用框架的日志打印接口(GlobalTools.Log),他只接收string类型的参数,这可以在某些地方避免装箱操作,而且在项目正式上线时可以在Setting面板直接禁用掉所有的日志打印。
运行时检视面板
在编辑器中运行时将会出现运行时检视面板(Runtime Data),主要用以调试或数据监测,目前面板如下:
1.No Runtime Data!