猿问

如何将js对象返回到unity

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


var dracoGeometry;

dracoGeometry = new decoderModule.Mesh();

decodingStatus = decoder.DecodeBufferToMesh(buffer, dracoGeometry);

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


我得到


“对象”类型。


现在我的问题是“我怎样才能把这个对象恢复到统一状态”。C# 支持什么返回类型来接受 js 对象?


UYOU
浏览 183回答 2
2回答

收到一只叮咚

您可以发送字符串或数字,所以我要做的是创建一个 js 对象,其中包含您需要的数据,然后调用JSON.stringify它以将其转换为字符串,然后使用以下方式发送unityInstance.SendMessage:function sendToUnity(obj) {&nbsp; &nbsp; unityInstance.SendMessage('MyGameObject', 'MyMethod', JSON.stringify(obj));}// in a script attached to a gameobject named "MyGameObject"void MyMethod(string s)&nbsp;{&nbsp; &nbsp; Debug.Log(s);&nbsp; &nbsp; // decode from json, do stuff with result etc}至于当数据为 JSON 字符串形式时您可以对其执行哪些操作,一旦您在 Unity 中拥有它,您可以使用各种解决方案来解码 JSON 字符串。有关详细信息,请参阅在 Unity 中序列化和反序列化 Json 和 Json 数组。所以如果你的 js 看起来像这样:function sendToUnity(obj) {&nbsp; &nbsp; unityInstance.SendMessage('MyGameObject', 'MyMethod', JSON.stringify(obj));}sendToUnity({&nbsp; &nbsp; playerId: "8484239823",&nbsp; &nbsp; playerLoc: "Powai",&nbsp; &nbsp; playerNick:"Random Nick"});你可以在 Unity 中做这样的事情:[Serializable]public class Player{&nbsp; &nbsp; public string playerId;&nbsp; &nbsp; public string playerLoc;&nbsp; &nbsp; public string playerNick;}&nbsp;...void MyMethod(string s)&nbsp;{&nbsp; &nbsp; Player player = JsonUtility.FromJson<Player>(s);&nbsp; &nbsp; Debug.Log(player.playerLoc);}

慕码人8056858

有一些方法可用,但目前似乎不可能将网格从 js 发送到 unity。如果你正在使用 google draco,我建议你使用这个fork
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答