我在调用函数方面有一些问题。
之前,我只需要一个参数,然后编写了这样的函数(我绝对需要这样调用):
public void SetDialogs(UnityAction pFunctionClic){blablabla};
SetDialogs(() => MyClicFunction());
现在,我需要在参数中具有多种功能。因此,我将SetDialogs函数设置如下:
public void SetDialogs(UnityAction[] pFunctionClic){blablabla};
现在,问题是调用函数时我不知道写什么。 显然
SetDialogs(() => [MyClicFunction()]);
不起作用。
能帮我吗?
答案 0 :(得分:1)
我以前没有使用过Unity,但是从您正在做的事情来看,您可以像这样传递一个UnityAction数组:
SetDialogs(new UnityAction[] {
() => MyClickFunction(),
() => SomeOtherStuff(),
});
答案 1 :(得分:1)
您可以使用params
数组参数。 params
参数必须始终是参数列表中的最后一个(或唯一一个)
public void SetDialogs(params UnityAction[] pFunctionClic){ ... };
现在,您可以根据需要传递任意数量的UnityAction
参数。
SetDialogs(() => MyClicFunction());
SetDialogs(() => MyClicFunction1(), () => MyClicFunction2());
SetDialogs(() => MyClicFunction1(), () => MyClicFunction2(), () => MyClicFunction3());
在方法内部,您始终会看到一个数组。调用该方法时,您不需要将其传递给数组(C#自动将参数转换为数组);但是,您可以:
var unityActions = new UnityAction[] {
() => MyClicFunction1(),
() => MyClicFunction2(),
() => MyClicFunction3()
};
SetDialogs(unityActions);