ET7.2源码分析-01 Game类
2023-09-02 15:52:52 0 举报
ET7.2源码分析-01 Game类
作者其他创作
大纲/内容
public static void FrameFinishUpdate()
lateUpdates
static class game
弹栈式依次调用singletons中对象的Destroy()方法,并清空singletonTypes k-v容器
...
ISingleton2
ET.Type
ET.ISingleton
类型...
实例...
updates
singletonTypes是一个k-v容器,主要保存了ET.Type-ET.ISingleton
创建一个ETTask对象并加入到frameFinishTask中。
对外提供的接口
singletonTypes
updates是一个队列,存储着立即更新的单例对象,在这一帧会顺序调用updates对象的.Update()方法,所以这里存储着每一帧更新的ISingleton单例对象。
与该方法的泛型接口基本一致,不同的是单例对象不是Game模块创建的,而是作为参数传入的。
public static void Close()
ETTask2
ETTask1
向Game管理类中添加一个T类型的单例对象(这里对象由Game模块创建),并将对象加入到singletonTypes、singletons、updates中,并且调用该对象的Awake方法。
singletons是一个保存了ET.ISingleton对象的栈,在singletonTypes中的value必定是按顺序存在与singletons的
public static void AddSingleton(ISingleton singleton)
lateUpdates与updates相似,但是里边存储的是每一帧调用LateUpdate方法的ISingleton单例对象。
游戏每一帧要执行的逻辑方法,调用updates中的对象的Update()方法。
public static async ETTask WaitFrameFinish()
singletons
public static void Update()
游戏一帧执行完之后的逻辑方法,调用frameFinishTask中的ETTask对象的SetResult()方法。
ET7.2中Game类主要功能是对单例类类型和对象的管理,属于管理类,包括单例类的update、lateUpdate、frameFinishTask运行都在这里
frameFinishTask
ISingleton3
ISingleton1
public static void LateUpdate()
lateUpdates与updates相似,但是里边存储的是每一帧之后会调用的ETTask对象,用于一帧之后调用。
游戏的逻辑LateUpdate(),调用lateUpdates中对象的LateUpdate()方法。
0 条评论
回复 删除
下一页