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

更新日期:2025年3月21日。
Github 仓库:https://github.com/SaiTingHu/HTFramework
Gitee 仓库:https://gitee.com/SaiTingHu/HTFramework

一、Main主程序简介

Main为框架主模块,提供访问其他模块的快捷接口,还支持快捷设置脚本定义、指定全局主要数据类、设置项目授权、以及配置全局参数等。

二、简略文档

快捷调用

通过如下方式快捷调用此模块:

HT.Framework.Main.Current

公开字段

字段描述
DefaultSkin默认的GUI皮肤
IsEnabledLogInfo是否启用常规日志打印
IsEnabledLogWarning是否启用警告日志打印
IsEnabledLogError是否启用错误日志打印
IsAllowSceneAddBuild是否允许将场景添加到发布界面
ApplicationFocusEvent程序焦点事件
ApplicationQuitEvent程序退出事件

公开属性

属性描述
IsInitCompleted框架是否已完成初始化(包含所有内置模块的初始化)
IsReadyCompleted框架是否已完成准备工作(包含所有内置模块的准备工作)
Pause暂停主程序

公开方法

方法描述
Clone克隆实例
CloneGameObject克隆 GameObject 实例
Kill杀死实例
KillImmediate立即杀死实例
Kills杀死一群实例
GetInternalModule获取内置模块
AddDataModel添加数据模型
RemoveDataModel移除数据模型
GetDataModel获取数据模型
ClearDataBinding清空指定数据模型的数据绑定
ClearAllDataBinding清空所有数据模型的数据绑定
IsExistParameter是否存在指定名称、类型的参数
GetParameters通过名称、类型获取参数
HybridCLRCompletedHybridCLR 热更新程序集已加载完成
QueueOnMainThread将执行委托排到主线程调用(在子线程中)
QueueOnSubThread将执行委托排到子线程调用(在主线程中)

公开类型

类型描述
DataModelBase数据模型基类,自定义数据模型继承此类
LicenserBase授权者基类,自定义授权条件继承此类

公开接口

接口描述

公开特性

特性描述

三、使用Main主程序

框架生命周期

框架生命周期函数如下(Module代表内置模块和自定义模块,MonoBehaviour代表常规脚本的生命周期):
在这里插入图片描述

规则如下:
1.OnInit自身初始化:框架的所有模块的自身初始化将在此完成,且其只专注于自身初始化;
2.OnReady准备完毕:框架的所有模块已完成初始化,在此阶段已能确保访问其他模块的安全性,若有需要访问其他模块的业务,可在此处完成;
3.OnUpdate逻辑帧更新:初始化完成、准备完毕后,这里进行逻辑帧更新。
4.OnTerminate终结:当模块终结时,这里进行终结前处理。

注意:也即是说,框架的所有初始化工作将先于任何自定义MonoBehaver脚本的Awake方法,你在任何地方的任何操作都可以直接访问框架资源,其自身初始化已确保最先完成(除非你的脚本执行顺序在框架之前,这样的话将没有意义)。

主循环

设置Pause为true将使得框架主循环暂停,如下调用:

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
    }

Data Model 数据模型

在这里加载全域数据模型。

请参阅如下文章:【Unity】 HTFramework框架(三十九)【进阶篇】UI的数据驱动模式(MVVM)

License 授权许可

请参阅如下文章:【Unity】 HTFramework框架(三十二)License授权验证

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,在这里分别可以开启或关闭这三种日志的打印接口:

在这里插入图片描述

注意:建议您在任何部位都使用框架的日志打印接口(Log),他只接收string类型的参数,且跳过了Debug类的拆装箱操作,而且在项目正式上线时可以在Setting面板直接禁用掉所有的日志打印。

Build类型的设置分栏,为项目构建设置,设置项Allow Scene Add Build为是否允许将其他场景添加到Build界面,不过,包含框架主环境的场景的Build索引必须为0。

在这里插入图片描述
注意:勾选了此设置项,则表示不再使用AB包模式加载场景,任何场景将被允许添加到Build界面,直接发布。

HybridCLR 热更新

【Unity】 HTFramework框架(五十二)使用 HybridCLR 热更新

四、运行时检视面板

在编辑器中运行时将会出现运行时检视面板(Runtime Data),主要用以调试或数据监测,目前面板如下:

在这里插入图片描述

1.Pause:框架主逻辑是否暂停。

Unity HTFramework是一个基于Unity引擎开发的游戏开发框架。它提供了丰富的功能模块和工具,帮助开发者轻松快速地构建高质量的游戏。 首先,Unity HTFramework提供了游戏框架的基础结构,包括场景管理、资源管理、对象池、事件系统等。开发者可以通过使用这些模块,更高效地组织和管理游戏逻辑和资源,提升开发效率。 其次,Unity HTFramework还提供了一些实用的工具,例如状态机、UI框架、游戏配置系统等。这些工具可以帮助开发者更好地组织游戏逻辑和界面,提供更好的用户体验。 另外,Unity HTFramework还内置了一些常用的功能模块,例如网络通信、音频管理、触摸输入、手机传感器等。通过这些模块,开发者可以方便地添加和管理游戏的各种功能,极大地减少了开发时间和工作量。 除了以上功能外,Unity HTFramework还支持热更新和扩展性。开发者可以通过热更新机制,实现游戏内容、界面和功能的在线更新,无需重新发布整个游戏。同时,框架还提供了灵活的扩展机制,开发者可以根据自己的需求,自定义和扩展各种功能模块,满足不同类型的游戏开发需求。 综上所述,Unity HTFramework是一个功能丰富、易用、高效的游戏开发框架。它可以大大简化游戏开发过程,提升开发效率,帮助开发者快速构建高质量的游戏。无论是个人开发者还是团队开发者,都可以受益于这个框架的使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神码编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值