2016-02-14 168 views
2

我想按照本教程通過標準Unity監聽器發送參數。不能隱式地將類型UnityEngine.Events.UnityAction <string>轉換爲UnityEngine.Events.UnityAction

mbListener = new UnityAction<string>(SomeFunction); 

void SomeFunction(string _message) 
{ 
    Debug.Log ("Some Function was called!"); 
} 

爲什麼這個失敗與上述錯誤信息? 順便說一句我正在尋找實際的答案,真的不關心技術講座。

(NB統一自己的手冊說,它可以處理的論點,但我不知道爲什麼這是錯誤的)。

+0

'mbListener'的類型是什麼?它是「UnityAction」嗎? (非通用的) –

+0

'私人UnityAction mbListener;' – Philip

+0

那麼,答案已經出現在這個假設的基礎上,所以這應該有所幫助 –

回答

1

你是什麼聲明mbListener爲?可能是它的類型 - UnityAction。將其聲明爲UnityAction並將其與UnityAction<string>一起分配會導致您遇到問題。

根據您的要求,您可以執行這些2的修復 -

UnityAction<string> mbListener = new UnityAction<string>(SomeFunction); 

UnityAction mbListener = new UnityAction(SomeFunction); 
void SomeFunction() 
{ 
    Debug.Log ("Some Function was called!"); 
} 

編輯 作爲@MotoSV指出...你應該叫它通過mbListener("String parameter");

mbListener是您想要調用的任何函數/列表程序的佔位符。當你需要它被調用時,你只需要調用將參數傳遞給它的UnityAction變量。所以mbListener("String parameter");將爲你工作。

+0

'UnityAction mbListener = new UnityAction (SomeFunction);'清除錯誤,但我如何使用字符串參數調用偵聽器? – Philip

+0

mbListener(「you string parameter」); – MotoSV

相關問題