2017-04-21 34 views
0

所以這是我的問題。我試圖創建直接運行的函數,但也有第二個exec輸出,比如完成循環。[虛幻引擎4]使用2個exec一起工作的節點

我試圖用這個工作:thread i googled

但我的問題是,當我試圖與提供的接受的答案做我得到這個錯誤:

E0434 a reference of type "TEnumAsByte<EMyEnum> &" (not const-qualified) cannot be initialized with a value of type "EMyEnum" 

去furthere下面有第二個答案,這工作,但它總是熄滅形式,最後可能pin.In我在下面顯示的情況下總是會觸發「FinishOutput」。有什麼辦法可以強制代碼從我提供的兩個引腳輸出?這裏是如何看起來在我的代碼:

.h文件中

UENUM(BlueprintType) 
enum class EMyEnum : uint8 
{ 
    Output, 
    FinishOutput 
}; 

UFUNCTION(BLueprintCallable, Category = "Test", Meta = (ExpandEnumAsExecs = "Branches")) 
     static void OutputTest(TEnumAsByte<EMyEnum>& Branches); 

.cpp文件

void UAudioController::OutputTest(TEnumAsByte<EMyEnum>& Branches) 
{ 
     Branches = EMyEnum::Output; 
//some code to execute before second output 
     Branches = EMyEnum::FinishOutput; 

} 
+0

'ExpandEnumAsExecs'只會選擇一個輸出。 Blueprint系統檢查C++函數末尾的'Branches'值,並從BP節點僅觸發一個輸出。我建議你: 1)將你的代碼拆分爲兩個單獨的節點,並將其與'Sequence'藍圖節點或 2)創建專用的UObject與自定義事件。您可以將這些事件綁定在您的Blueprint中,並逐個從C++中將它們解鎖。 – JKovalsky

+0

對我來說這聽起來不錯:3要去嘗試一下! –

回答

1

我會做一個宏,因爲它可以有多個Exec的輸出。這是藍圖,而不是代碼。

+0

這也是有用的提示。我想把所有的代碼都寫出來,但是看起來Macro很容易。 –