按照教程,我想通过标准的Unity侦听器发送参数。

mbListener = new UnityAction<string>(SomeFunction);

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


为什么上述错误消息失败?
顺便说一句,我正在寻找实用的答案,真的不在乎技术交流。

(NB Unity自己的手册说它可以处理参数,但是我无法弄清楚为什么这是错误的)。

最佳答案

您将mbListener声明为什么?可能是它的类型-UnityAction。将其声明为UnityAction并将其分配给UnityAction<string>会导致出现问题。

根据您的要求,您可以执行以下两项操作之一来解决-

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");将为您工作。

08-19 04:06