统一的SendMessage只能传递一个参数,它可以是一个数组。所以我打电话给我的JavaScript的sendMessage和调用C#方法(实际上可以WebGL的方法)
var arr = [x,y,z];
gameInstance.SendMessage("Cube","SetGameObjectPosition",arr);
但得到这个错误
调用错误处理程序因
未捕获的2,2,2是不具有通过SendMessage函数支持的类型。 [违反]“点击”接过8994ms的blob:http://localhost/1ff50200-cb3a-4367-ab45-f02e9734fac2:2未捕获的2,2,2是不具有通过SendMessage函数支持的类型。
SendMessage函数@ BLOB:http://localhost/1ff50200-cb3a-4367-ab45-f02e9734fac2:2
SendMessage函数@ UnityLoader.js:4
SetObjectPosition @(指数):44
的onclick @(指数):65(指数):65
[违反]“点击”接过9000ms
SendMessage(objectName, methodName, value);
凡
objectName
是在你的场景中的对象的名称;methodName
是,当前连接到该对象的脚本的方法的名称;value
可以是一个字符串,一个数字,或者可以是空的。
- >没有它不能是一个数组
但似乎你想传递一个位置,作为一种变通方法,你可以像“2,2,2”,并使用字符串中传递
string[] numberStrings = ("2,2,2").Split(",");
float x = float.TryParse(numberStrings[0], out x) ? x : 0;
float y = float.TryParse(numberStrings[1], out y) ? y : 0;
float z = float.TryParse(numberStrings[2], out z) ? z : 0;
或类似的东西
你可以传递一个JSON字符串:
var pos = {x:1,y:2,z:3};
gameInstance.SendMessage("Cube","SetGameObjectPosition", JSON.stringify(pos));
在统一:
void SetGameObjectPosition(string data)
{
var position = JsonUtility.FromJson<Vector3>(data);
}