当前位置: 首页 > news >正文

建设银行的官方网站积分商场创业型企业网站模板

建设银行的官方网站积分商场,创业型企业网站模板,自己做文字壁纸的网站,上海服装贸易公司排名前言 UE当中有自己的事件分发机制实现方式。在蓝图中,通过左下角自带的事件分发器来实现。在UEC中,可以通过委托(Delegate),将一个函数指针或成员函数指针绑定到一个特定的对象,并在需要时调用该函数或方法来实现事件分发。本文依…

前言

        UE当中有自己的事件分发机制实现方式。在蓝图中,通过左下角自带的事件分发器来实现。在UEC++中,可以通过委托(Delegate),将一个函数指针或成员函数指针绑定到一个特定的对象,并在需要时调用该函数或方法来实现事件分发。本文依照事件分发机制的核心理念,创建一个自己的事件分发器。

正文

        首先核心框架由这两类构成:EventManager、EventInterface。在EventManager中,管理着所有的订阅者以及订阅的事件。

订阅事件全局变量

        

        利用Map存储事件及其对应所有订阅者,因为Map可以将任何基本类型(包括STL容器)映射到任何基本类型。因此键用FString存储事件名,值用TArray<UObject*>存储其订阅者。

回调函数接口

        

        用BlueprintNativeEvent修饰,是回调函数既可以在C++中实现,也可在蓝图中实现。

核心函数方法

一、AddEventListener

        

        AddEventListener用于添加订阅者,函数接收两个参数,一个是订阅事件的名称,另一个是订阅者的指针。首先应当对参数进行安全校验,判断订阅者是否为空,以及是否被垃圾回收机制标记为无效,其次还应当实现订阅的接口函数。

        

       在通过校验后,在AllListener中查找是否已有该事件,若有则直接在其下添加该订阅者,否则重新添加一个该事件的Array存储订阅者。

        

二、RemoveEventListener

        

        RemoveEventListener用于删除事件中的订阅者。由于Remove不需要判别订阅者的有效性,因此只需要对事件名做判断即可。

        

三、DispatchEvent

        

        函数接收两个参数,第一个是事件名,第二个是事件需要传入的数据,以UObject作为参数则方便转换为实际参数类型。先寻找是否有该事件并取出其中的订阅者序列,若是没有则直接返回报错信息。

        

        若是有该事件,首先对订阅者序列进行遍历,检查是否有已经被垃圾回收标记为无效的对象,有则将其删除。然后正常进行事件分发,利用UFunction*检查是否有实现回调的函数,若回调函数无效则进行错误信息处理,正常则调用函数。ProcessEvent是UEC++底层中的可用于扩展事件处理逻辑的一个函数。

四、NewAsset

        

        该函数主要用于创建数据时使用。

        

实际使用样例

        这里假设在开发中,回调函数所需的参数为一个int型,那么创建一个类存储一个int型的数据(只要继承自UObject的子类都可)。

        

        在被订阅者内,先利用工具类里的创建一个资源,然后转为所需数据类型的对象,然后对其中的数据赋值,然后进行事件分发的调用。

        

        然后在订阅者中利用工具类添加事件订阅,然后实现接口内的函数(订阅者需要继承接口类)。

        

结尾

        自此完成了自定义事件分发机制的工具类以及使用。

http://www.dtcms.com/a/589940.html

相关文章:

  • 怎么查看网站虚拟空间搭建网站需要哪些步骤
  • 通配符(二)【java】
  • 饿汉模式和懒汉模式
  • 南京凯盛建设集团官方网站深圳数据中心建设公司
  • 新版点微同城主题源码34.7+全套插件+小程序前后端 源文件
  • 房产中介网站建设进度慕枫网络科技有限公司
  • 周口建设网站的中英文网站好处
  • 商城网站建设开发还有做网站的必要吗
  • QSS简介与应用
  • 上海域格ASR平台cat1模块GPS功能介绍及测试
  • GKE连接私有Cloud SQL疑难问题排查实录
  • 深入理解系统调用:用户态与内核态的边界与协作
  • 网站运营怎样做wordpress微软雅黑
  • C++无锁队列实现的常见误区
  • 朝花夕拾(名字太短)
  • 阿里巴巴国内网站怎么做山东省市场监督管理局
  • 常州网站建设服务专业设计网站公司
  • 网站建设类公司可以拿哪些项目资金项目推广平台排行榜
  • 变增益PID在收放卷控制中的应用(汇川Easy系列ST源代码)
  • 【Janet】绑定(def和var)
  • 南山区做网站公司网站建设程序员提成
  • Photoshop - Photoshop 工具栏(28)魔术橡皮擦工具
  • 建设网站的费用明细大概有哪些网站模板带后台下载
  • 网站建设下一步工作计划网站开发怎样转h5页面
  • 做淘宝有没有店小秘类型的网站自己做网站排名好吗
  • 网站开发后端做什么如何建设自己的php网站
  • 使用Terraform创建私有Cloud SQL实例及连接测试
  • 汶上网站开发点金wordpress
  • 信息学奥赛一本通 2090:【22CSPS提高组】假期计划(holiday) | 洛谷 P8817 [CSP-S 2022] 假期计划
  • 算法学习 25 集合