无法将类型“UnityEngine.Events.UnityAction”隐式转换为“UnityEngi
本文关键字:string 转换 UnityEngi 类型 UnityEngine UnityAction Events | 更新日期: 2023-09-27 18:34:28
我想按照教程通过标准 Unity 侦听器发送参数。
mbListener = new UnityAction<string>(SomeFunction);
void SomeFunction(string _message)
{
Debug.Log ("Some Function was called!");
}
为什么出现上述错误消息失败?顺便说一句,我正在寻找实用的答案,真的不在乎技术谈话。
(NB Unity 自己的手册说它可以处理参数,但我无法弄清楚为什么这是错误的(。
你宣布mbListener
是什么?可能是它的类型 - UnityAction
.将其声明为 UnityAction
并为其分配UnityAction<string>
会导致问题。
根据您的要求,您可以执行以下 2 个中的任何一个来修复 -
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");
会为你工作。