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