欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

GameFramework篇:StarForce加载UI讲解(上)

程序员文章站 2022-06-27 14:31:03
准备工作:了解C#委托和事件这篇博客就以初学者角度来讲讲GF加载UI的方式,因为卸载UI的方式相对简单,就留给大家自己看了。来到ProcedureMenu流程,因为这里有UI OnEnter函数做了两件事,订阅打开UI成功事件,并设置回调函数,意思是当UI实例化成功时,调用OnOpenUIFormSuccess函数。好了,这时候我们先不管别的,先把这句的原理搞......

准备工作:

  1. 了解C#委托和事件

这篇博客就以初学者角度来讲讲GF加载UI的方式,因为卸载UI的方式相对简单,就留给大家自己看了。

来到ProcedureMenu流程,因为这里有UI

GameFramework篇:StarForce加载UI讲解(上)       

OnEnter函数做了两件事,订阅打开UI成功事件,并设置回调函数,意思是当UI实例化成功时,调用OnOpenUIFormSuccess函数 。

好了,这时候我们先不管别的,先把这句的原理搞清楚

GameFramework篇:StarForce加载UI讲解(上)            

id传入的是OpenUIFormSuccessEventArgs哈希值(所以是唯一的)

GameFramework篇:StarForce加载UI讲解(上)

我们继续往里看

GameFramework篇:StarForce加载UI讲解(上)

当我们看到这里的时候,已经有些眉目了,GF内部将一类事件函数按规定的事件ID分类,这里就是很好的例子,以OpenUIFormSuccessEventArgs(打开UI成功事件)为一类,添加OnOpenUIFormSuccess这一事件参数。

还没完,我们继续,添加了事件,我们怎么确保加载成功后才执行呢?

回到ProcedureMenu流程,我们把注意力放在这句上(因为除了这句找不到其他和这一块有关系的了)

GameFramework篇:StarForce加载UI讲解(上)

如果 不存在UI实例,则通过AB加载方式加载,然后调用回调函数

GameFramework篇:StarForce加载UI讲解(上)

到这里先暂停一下 ,先理解m_loadAssetCallbacks是个啥

GameFramework篇:StarForce加载UI讲解(上)

是封装了加载资源回调函数的一个函数集,他封装的这些都来自UIManager里面的

GameFramework篇:StarForce加载UI讲解(上)

 继续回到LoadAsset函数

GameFramework篇:StarForce加载UI讲解(上)

GameFramework篇:StarForce加载UI讲解(上)

到最后,加载好还是回到了InternalOpenUIForm

GameFramework篇:StarForce加载UI讲解(上)

所以我们再看InternalOpenUIForm

GameFramework篇:StarForce加载UI讲解(上)

这又是个啥? 

在UIManager里

GameFramework篇:StarForce加载UI讲解(上)

GameFramework篇:StarForce加载UI讲解(上)

查找引用,在UIComponent里,添加订阅

GameFramework篇:StarForce加载UI讲解(上)

GameFramework篇:StarForce加载UI讲解(上)

好了,看到这,已经快到和最开始的订阅结合的地方了,马上就要到重点了,下篇继续,先用一张UML图总结这篇博客的内容,其实也没啥,理解了委托和事件很容易

GameFramework篇:StarForce加载UI讲解(上)

 

本文地址:https://blog.csdn.net/qq_15020543/article/details/85850196