在GF里 很多功能都是分模块管理的,例如:Config(配置)、DataTable(数据表)、Fsm(有限状态机)和Event(事件)...,现公布出来的是19个模块,听说还有30多个模块。
GameFrameworkModule 模块基类
- 内部维护一个优先级变量
- 两个抽象方法,Update(),ShutDown()
GameFrameworkEntry 框架入口
private static readonly GameFrameworkLinkedList<GameFrameworkModule> s_GameFrameworkModules = new GameFrameworkLinkedList<GameFrameworkModule>();
- 通过一个链表维护所有模块。
-
public static void Update(float elapseSeconds, float realElapseSeconds) { foreach (GameFrameworkModule module in s_GameFrameworkModules) { module.Update(elapseSeconds, realElapseSeconds); } }
轮询所有模块(上一章的任务池的Update就是通过这种方式管理的)。
-
可以通过GetModule()方法获取模块,如果模块没有则回通过反射的方式创建模块。