【Unity】 HTFramework框架(二十三)Main主程序

更新日期: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!

猜你喜欢

转载自blog.csdn.net/qq992817263/article/details/102956756