UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

蓝图还挺有意思,继承封装多态机制都支持,除了阅读上不如代码看着舒服,其他方面比预想的要好很多。

定义游戏事件枚举类型

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

ABSTRACT_GameMode

ABSTRACT_GameMode里面定义了一个名为GameEventEventDispatcher,它有2个参数,一个是Object,即消息的发送者,另一个是event即消息的内容,其类型是刚才定义的游戏事件枚举类型。以后所有自定义的GameMode都继承自这个ABSTRACT_GameMode

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

ABSTRACT_Actor 和 ABSTRACT_Character

定义一个ABSTRACT_ActorABSTRACT_Character以后所有需要接受游戏事件的AActorACharacter都继承于这两个类,目前这两个类的代码是相同的。

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

游戏事件接收绑定和解除绑定

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

使用范例

注意:如果使用BeginPlay事件,需要先调用父类的BeginPlay
UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

发送事件

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统

接受事件

UE4基础:用蓝图构建出一个GameMode中的游戏事件通信系统