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。在调用它之前检查它是否为空,并且如果不是则调用它。 –