Unreal入门,开关03,利用事件调度器来制作电源总开关
发布时间 2023-12-26 22:43:33作者: BuzzWeek

这里总开关的实现方式是在总开关ActorPowerOff上添加事件调度器PowerOff,其它需要响应这个事件的Actor需要自己初始化相应的事件,并作出合适的处理即可,这里是将PowerOff事件关联上ToggleLight即可实现跟随主开关的开关效果

1. 创建基于Actor的蓝图类,电源总开关BP_PowerSwitch

添加一个StaticMesh并拖放到根节点

在Class Setting中添加上一节中创建的蓝图接口BPI_Interactable(这样就可以用柱子怼他了)

双击Interact添加蓝图事件处理,打一个字符串看看

拖放到地图,运行一下看看(怼上去之后,能打印字符串Power就算交互成功了)

怎么怼?

添加一个事件调度器Event Dispatcher,并拖放到事件图表,选择Call

这里每次玩家调用Interact之后就会触发一次PowerOff事件,这里BP_PowerSwitch并不知道谁会去处理PowerOff事件,它只管派发这个事件

2. 给灯加上PowerOff事件处理
绑定PowerOff事件,因为只用绑定一次,所以可以在Event BeginPlay中做初始化,这里先找到PowerSwitch对象

需要判断下是否有效,地图中可能没有拖放PowerSwitch对象

然后绑定到PowerOff事件,这里选Assign

Assign之后会自动创建一个PowerOff_Event(也可以选bind,然后手动创建这个Event)

然后连线到ToggleLight事件即可在PowerOff事件触发时自动开关灯

完整蓝图

运行试试

多放几个灯试试

3. 让电视机也响应PowerOff号召
打开BP_TV蓝图添加一个自定义事件

把之前定义的开关机效果剪切过去重新连线

响应PowerOff事件

运行试试

其它