如何使js对象恢复统一

问题描述

我正在使用Google Draco解码器对以下内容进行网格划分。

/bin/sh -c #(nop)

当我检查draceGeometrytry的类型时: console.log(typeof dracoGeometry);

我明白了

“对象”类型。

现在我的问题是“如何使这个物体恢复统一”。 C#支持哪种返回类型来接受js对象?

解决方法

您可以发送字符串或数字,所以我要做的是创建一个具有所需数据的js对象,然后在其上调用JSON.stringify以将其转换为字符串,然后使用{{1} }:

unityInstance.SendMessage
function sendToUnity(obj) {
    unityInstance.SendMessage('MyGameObject','MyMethod',JSON.stringify(obj));
}

关于数据以JSON字符串形式处理时的处理方式,一旦将其放入Unity中,便可以使用多种解决方案来解码JSON字符串。有关更多信息,请参见Serialize and Deserialize Json and Json Array in Unity

因此,如果您的js看起来像这样:

// in a script attached to a gameobject named "MyGameObject"
void MyMethod(string s) 
{
    Debug.Log(s);
    // decode from json,do stuff with result etc
}

您可以在Unity中执行以下操作:

function sendToUnity(obj) {
    unityInstance.SendMessage('MyGameObject',JSON.stringify(obj));
}

sendToUnity({
    playerId: "8484239823",playerLoc: "Powai",playerNick:"Random Nick"
});

来源:Programmer's answer

,

有一些可用的方法,但目前尚无法将网格从js发送到unity。如果您使用的是Google draco,建议您遵循this fork