zoukankan      html  css  js  c++  java
  • UE4复习3_信息交互(下)

    发报机 (event dispatcher)

    发报机可以实现命令在关卡蓝图和类蓝图间的相互传递。

    先介绍一下发报机的六个命令。

    新建一个Event Dispatcher后,拖拽到蓝图中,会发现有六个命令。

    第一个命令是call 相当于调用函数的 call funcation

    第二命令是bind,必须绑定一个事件,当有event dispatcher被call时,就会触发所绑定的事件。

    如下,实现了按X后通过MyDispatcher 调用自定义事件CE_rotate

    绑定CE_rotate的操作在游戏一开始就完成了,我们可以把调用myDispatcher的命令放到关卡蓝图中。

    这样也实现了按X让BP_N进行旋转的操作。

    第三个命令unbind,解除某事件的绑定

    第四个命令unbind all,解除所有事件的绑定

    如下图,按Q之后原本绑定在myDispatcher的CE_rotate事件就会解除绑定,再按X进行调用也不会旋转了。

     最后两个操作用处不大。

    第五个命令是event,等价于我们直接创建一个自定义事件。

    第六个命令是assign,等价于我们创建一个与DIspatcher相连的自定义事件。

    蓝图类之间的事件调度。

    在BP_M中,绑定一个自定义事件在BP_N的Dispatcher上。

    同时在BP_N中,当它旋转完成后,调用call Dispatcher。所有与之绑定的事件都会被触发。

     

     上图中BP_M的逻辑也可以写在关卡蓝图中,并且还有一种简单的写法。

    在场景中选择BP_N,然后在关卡蓝图中点击右键,输入Dispatcher的名称,可以通过MyDispatcher(BP_N)直接绑定事件。

    如下图,上下两种写法的作用是等价的。

    总结,在某个类蓝图中创建的Dispatcher,可以在其他类蓝图(新建变量)或者关卡蓝图(创建引用)中进行绑定或者调用。一旦当Dispatcher被call,所有与之绑定的事件都会被触发。

    ps.不止事件可以绑定到dispatcher上,其实函数也可以。

    create event 可以将函数转换成事件绑定到Dispatcher上。

  • 相关阅读:
    【Android】页面切换ViewFlipper、ViewPager、ViewFlow
    【Android】9patch图片以及例子说明
    【Android】proguard混淆代码
    【iOS】ios6.0 UINavigationController支持屏幕自动旋转
    【Android】Notification官方文档归纳
    c++第一天
    c++第二天
    java第七天(布局管理器)
    Linux第一讲(韩顺平)
    java第四讲(类与对象)
  • 原文地址:https://www.cnblogs.com/reluctante1/p/12714777.html
Copyright © 2011-2022 走看看