GameFramework篇:StarForce加载UI讲解(上)
准备工作:
- 了解C#委托和事件
这篇博客就以初学者角度来讲讲GF加载UI的方式,因为卸载UI的方式相对简单,就留给大家自己看了。
来到ProcedureMenu流程,因为这里有UI
OnEnter函数做了两件事,订阅打开UI成功事件,并设置回调函数,意思是当UI实例化成功时,调用OnOpenUIFormSuccess函数 。
好了,这时候我们先不管别的,先把这句的原理搞清楚
id传入的是OpenUIFormSuccessEventArgs哈希值(所以是唯一的)
我们继续往里看
当我们看到这里的时候,已经有些眉目了,GF内部将一类事件函数按规定的事件ID分类,这里就是很好的例子,以OpenUIFormSuccessEventArgs(打开UI成功事件)为一类,添加OnOpenUIFormSuccess这一事件参数。
还没完,我们继续,添加了事件,我们怎么确保加载成功后才执行呢?
回到ProcedureMenu流程,我们把注意力放在这句上(因为除了这句找不到其他和这一块有关系的了)
如果 不存在UI实例,则通过AB加载方式加载,然后调用回调函数
到这里先暂停一下 ,先理解m_loadAssetCallbacks是个啥
是封装了加载资源回调函数的一个函数集,他封装的这些都来自UIManager里面的
继续回到LoadAsset函数
到最后,加载好还是回到了InternalOpenUIForm
所以我们再看InternalOpenUIForm
这又是个啥?
在UIManager里
查找引用,在UIComponent里,添加订阅
好了,看到这,已经快到和最开始的订阅结合的地方了,马上就要到重点了,下篇继续,先用一张UML图总结这篇博客的内容,其实也没啥,理解了委托和事件很容易
本文地址:https://blog.csdn.net/qq_15020543/article/details/85850196