1. 程式人生 > >UE4的Event模式

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