【UE实用技巧】场景设计(创造通用开关:事件分发器)

1.说明:父类开关预留接口控制任意对象

2.步骤:

        步骤1:添加事件分发器 

                操作1:进入父类开关添加两个事件分发器(实现Open和Close)

        步骤2:编辑父类开关蓝图

                操作1:事件分发器的调用(重载给子类用,事件分发器给父类用)

        步骤3:父类开关添加事件分发器事件

                操作1:点击父类开关→右键→添加事件→事件分发器的两个事件添加

        步骤4:编辑事件分发器事件蓝图

                操作1:与正常变换对象位置无异,仅添加switch分支让

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uE中的事件分发可以帮助用户在程序中管理和处理事件。使用事件分发可以将事件从一个对象传递到另一个对象,实现对象之间的解耦。在uE中,事件分发使用了观察者模式,当一个事件发生时,事件分发会通知已注册的监听并执行相应的操作。 使用uE事件分发的方法如下: 1. 创建一个事件分发对象。 2. 注册监听对象,可以是任何实现了监听接口的对象。 3. 在需要触发事件的地方,调用事件分发的方法并传递事件对象作为参数。 4. 事件分发会自动通知已注册的监听对象,并执行相应的操作。 示例代码如下: ```c++ // 定义一个事件类型 class MyEvent { public: int data; }; // 定义一个监听接口 class MyListener { public: virtual void onEvent(MyEvent event) = 0; }; // 定义一个事件分发 class MyEventDispatcher { private: std::vector<MyListener*> listeners; public: void registerListener(MyListener* listener) { listeners.push_back(listener); } void dispatchEvent(MyEvent event) { for (auto listener : listeners) { listener->onEvent(event); } } }; // 实现一个监听 class MyEventListener : public MyListener { public: void onEvent(MyEvent event) override { std::cout << "Event data: " << event.data << std::endl; } }; // 使用事件分发 int main() { MyEventDispatcher dispatcher; MyEventListener listener; dispatcher.registerListener(&listener); MyEvent event; event.data = 123; dispatcher.dispatchEvent(event); return 0; } ``` 在上面的示例代码中,我们创建了一个名为`MyEventDispatcher`的事件分发,并实现了一个名为`MyEventListener`的监听。我们使用`registerListener`方法将`MyEventListener`对象注册到事件分发中,并使用`dispatchEvent`方法触发事件,并将`MyEvent`对象作为参数传递给事件分发。当事件被触发时,事件分发会自动通知已注册的监听对象,并执行相应的操作。在上面的示例代码中,我们实现了`MyEventListener`监听的`onEvent`方法,当事件被触发时,会输出事件的数据到控制台上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值