UE4的Event模式

Event模式概括的说分三部分:

1.全局唯一的Event对象本身,可以统一放置也可以分散在各个模块

2.注册侦听特定Event的回调

3.触发特定Event

UE4的Event是用MultcastDelegate实现,蓝图常用的有三种实现方式:

1.C++ + 蓝图:

//声明动态MulticastDelegate,否则蓝图无法识别

DECLARE_DYNAMIC_DELEGATE_OneParam(FEventOneParam, FString, Param1);
UPROPERTY()
        FMultiDelegateOneParam MultiDelegate;
UFUNCTION(BlueprintCallable)
	void RegisterEvent(UPARAM(DisplayName = "Event") FEventOneParam InEvent);
 
UFUNCTION(BlueprintCallable)
	void TriggerEvent(FString InParam);

2.C++ + 蓝图:

DECLARE_DYNAMIC_DELEGATE_OneParam(FEventOneParam, FString, Param1);

 //BlueprintAssignable会向蓝图暴露该Event,直接在蓝图逻辑层对该Event侦听或者触发

UPROPERTY(BlueprintAssignable)
        FMultiDelegateOneParam MultiDelegate;

3.纯蓝图(好处是可以热更新)

EventDispatcher

猜你喜欢

转载自blog.csdn.net/taoqilin/article/details/83448617