Unity 5.6 - 从WebGL SendMessage调用Unity函数时出错

问题描述 投票:0回答:1

SendMessage调用:

gameInstance.SendMessage("MessageReceiver", "Test", "This is a message", "myname");

错误信息:

无法调用MessageReceiver类的函数Test

调用函数使用1个参数测试,但该函数需要2。

(文件名:行:810)

而功能定义:

public void Test(string message, string name) {
    // If the call from JavaScript succeeds, an alert will show up on the page
    Application.ExternalEval("alert('it works')");
}

第一个参数“MessageReceiver”是脚本附加到的统一游戏对象。

第二个,“Test”,是被调用函数的名称。

其余的参数传递给被调用的函数,在我的例子中是“Test”。

正如您所看到的,我传递了2个字符串参数,这正是“测试”接收的内容。为什么然后是一个错误告诉我,我正在使用1个参数调用该函数?任何帮助,将不胜感激。

javascript c# unity3d unity-webgl
1个回答
1
投票

SendMessage函数只接受1个参数,如果要发送多个参数,该参数应该是一个数组。因此,只需使用您的值“This is a message”和“myname”创建一个临时object []数组,并将此对象[]传递给sendMessage函数。

object[] args = new object[2];
args[0] = "This is a message";
args[1] = "myname";
gameInstance.SendMessage("MessageReceiver", "Test", args);
© www.soinside.com 2019 - 2024. All rights reserved.