UE4的Event模式
阿新 • • 發佈:2018-11-13
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