按照教程,我想通过标准的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");
将为您工作。