Unreal入门,开关03,利用事件调度器来制作电源总开关

发布时间 2023-12-26 22:43:33作者: BuzzWeek

image

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

image

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

image

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

image

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

image

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

image

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

image

怎么怼?

image

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

image

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

image

2. 给灯加上PowerOff事件处理

绑定PowerOff事件,因为只用绑定一次,所以可以在Event BeginPlay中做初始化,这里先找到PowerSwitch对象

image

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

image

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

image

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

image

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

image

完整蓝图

image

运行试试

image

多放几个灯试试

image

3. 让电视机也响应PowerOff号召

打开BP_TV蓝图添加一个自定义事件

image

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

image

响应PowerOff事件

image

运行试试

image

其它