更新日期:2019年9月26日。
Github源码:[点我获取源码] Gitee源码:[点我获取源码]
索引
- Procedure模块简介
- 使用Procedure
- 自定义流程
- 启用流程
- 设置默认流程
- 切换流程
- 运行时检视面板
Procedure模块简介
Procedure是框架的核心模块,也是最基本的模块,他贯穿整个框架的始终,从框架的生命周期开始,到生命周期结束,都会在流程间完成,同时,他又是一个强化版的有限状态机,当在多个流程间切换直至最终流程时,便代表整个系统的结束。
使用Procedure
自定义流程
使用Procedure前,必须自定义流程,比如最常见的流程结构:登录流程 > 选角流程 > 加载资源流程 > 场景xx流程…
由于框架不自带任何流程,我们必须要为不同阶段的逻辑划分不同的流程,创建流程,需要自定义类并继承至ProcedureBase。
推荐使用快捷创建方式:
Project界面右键 -> Create -> HTFramework -> C# Procedure Script
如下图,我创建了一个名为LoginProcedure的流程:(相应的实现函数将在此流程的对应生命周期中调用)
1.OnInit():流程的初始化工作请在这里完成,他将于任何自定义MonoBehaviour脚本的Start生命周期之前执行。
2.OnEnter():每次切换到当前流程的时候触发一次。
3.OnLeave():每次从当前流程切换至其他流程的时候触发一次。
4.OnUpdate():如果当前流程处于激活中,他将每帧触发一次,当前激活的流程只能有一个。
5.OnUpdateSecond():如果当前流程处于激活中,他将每秒触发一次。
启用流程
创建流程以后,我们还需要在面板启用他,之后的工作便不需要我们去涉及了,什么时候创建流程对象,什么时候销毁对象,都将由框架自身来把控。
选中主预制体下的Procedure对象,在Procedure Manager的属性面板,点击Add Procedure便可以启用我们当前工程中存在的任何流程。
设置默认流程
第一个被启用的流程将会自动被设置为默认流程,后面可以手动将任意流程设置为默认流程,框架启动后会首先进入默认流程,如要切换至其他流程,该流程也必须是在此面板启用的流程。
如下,此时的默认流程为InitProcedure流程。
切换流程
理论上来说一个流程永远不会被终结,除非整个系统停止,所以他可以在任何时候被激活,想要激活某个流程,直接切换至该流程即可。
选择在恰当的时机调用如下语句:
当然,也可以直接获取流程对象,进行一些自定义的操作,这里需要你自己去扩展每一个流程类:
运行时检视面板
在编辑器中运行时将会出现运行时检视面板(Runtime Data),主要用以调试或数据监测,目前面板如下:
1.Current Procedure:当前所处的流程。
2.Procedures:所有激活的流程列表,点击Switch按钮可以模拟切换到该流程。