unity webgl 中带有数组参数的 SendMessage

Muh*_*han 1 unity-game-engine unity-webgl

Unity SendMessage只能传递一个参数,并且可以是一个数组。所以我正在调用 javascript 的 sendMessage 并调用 C# 方法(实际上是 webgl 方法)

var arr = [x,y,z];
gameInstance.SendMessage("Cube","SetGameObjectPosition",arr);
Run Code Online (Sandbox Code Playgroud)

但出现这个错误

由于以下原因调用错误处理程序

Uncaught 2,2,2 没有 SendMessage 支持的类型。[违规]“单击”处理程序花费了 8994 毫秒 blob:http://localhost/1ff50200-cb3a-4367-ab45-f02e9734fac2:2 Uncaught 2,2,2 没有 SendMessage 支持的类型。

SendMessage @ blob:http://localhost/1ff50200-cb3a-4367-ab45-f02e9734fac2:2

发送消息@UnityLoader.js:4

SetObjectPosition @(索引):44

onclick @(索引):65(索引):65

[违规]“点击”处理程序花费了 9000 毫秒

shi*_*ngo 7

您可以传递 json 字符串:

var pos = {x:1,y:2,z:3};
gameInstance.SendMessage("Cube","SetGameObjectPosition", JSON.stringify(pos));
Run Code Online (Sandbox Code Playgroud)

统一:

void SetGameObjectPosition(string data)
{
    var position = JsonUtility.FromJson<Vector3>(data);
}
Run Code Online (Sandbox Code Playgroud)