【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!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章