Reference
IReference
被引用的对象需实现 IReference
接口(包含一个 Clear
函数),当对象被回收时调用,恢复初始状态,以便下次使用。
ReferenceCollection
代表一种类型的引用池,位于 ReferencePool
内部:
1 | private readonly Queue<IReference> m_References; |
具体操作时先根据类型(为
Type
时先要对类型进行检查)获取对应的ReferenceCollection
,再进行其他操作。
Fsm (状态机)
FsmState
状态机状态的抽象类,包括状态初始化、状态更新等逻辑。
IFsm
状态机接口。
FsmBase
状态机的抽象类。
Fsm
1 | internal sealed class Fsm<T> : FsmBase, IReference, IFsm<T> where T : class |
一个状态机,包括所有状态类以及当前数据。
IFsmManager
接口,管理所有状态机。
Procedure
ProcedureManager
特殊的 Fsm
,也由 FsmManager
管理。
Setting
只需根据 ISettingHelper
创建设置辅助器即可完成,ISettingManager
用于使用。
Module
只暴露接口,具体实现仅在程序集可见。通过 GetModule<Interface>
实例化:
1 | public static bool InScene(this GameObject gameObject) |
this
:表示这是一个扩展方法,并且该方法是对GameObject
类型的扩展。GameObject
:表示要扩展的类型(Unity 的GameObject
类)。gameObject
:方法参数,调用时传入的目标对象。
DataProvider
ReadData
m_ResourceManager.LoadAsset
加载资产,并传入回调函数,回调函数触发 provider 的事件:
1 | private void OnCloseUIFormComplete(object sender, CloseUIFormCompleteEventArgs e) |
在 GameFramework 提供接口,在 runtime 中将不同模块结合起来。