0
我在Unity中的C#腳本中的回調函數有問題。Unity3d執行多個腳本的回調
在Corona SDK中,如果你想執行回調,你只需要將它作爲參數傳遞,然後在適當的地方調用它。
local function boom()
print("booom!!!")
end
local function bang()
print("baaaang!!!")
end
local function selector(var, func1, func2)
if var > 0 then
func1()
else
func2()
end
end
selector(5, boom, bang)
selector(-12, boom, bang)
我也得到:
booom!!!
baaaang!!!
這是正確的。
但是,當我嘗試在Unity中的C#腳本中實現它時,我遇到了很多問題。首先,傳遞一個參數是不夠的。您需要在selector()
函數中指定變量的類型。所以我必須指定類名稱func1
和func2
。但是如果我想能夠從多個腳本調用它並傳遞不同的回調函數?然後我無法將類指定爲類型。
我發現了幾個教程,但沒有一個解決了我的問題。他們都描述瞭如何在類中或只從預定義類
它的工作原理!真的行!所以「行動」是關於:D – Lukis
順便說一句。如何將'Action func2'設置爲可選項? '行動? func2 = null'不起作用。 – Lukis
它爲什麼不起作用?提供錯誤信息或解釋您判斷爲不起作用的行爲通常很有幫助。當我嘗試調用func2()時,我想你會得到一個NullReferenceException。這是可以預料的,因爲你不能調用null。在調用它之前檢查它是否爲空,並且如果不是則調用它。 –