为了账号安全,请及时绑定邮箱和手机立即绑定

如何将js对象返回到unity

如何将js对象返回到unity

UYOU 2023-03-10 15:12:54
我正在使用 Google Draco 解码器对以下网格进行解码。var dracoGeometry;dracoGeometry = new decoderModule.Mesh();decodingStatus = decoder.DecodeBufferToMesh(buffer, dracoGeometry);当我检查 draceGeometry 的类型时: console.log( typeof dracoGeometry);我得到“对象”类型。现在我的问题是“我怎样才能把这个对象恢复到统一状态”。C# 支持什么返回类型来接受 js 对象?
查看完整描述

2 回答

?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

您可以发送字符串或数字,所以我要做的是创建一个 js 对象,其中包含您需要的数据,然后调用JSON.stringify它以将其转换为字符串,然后使用以下方式发送unityInstance.SendMessage:


function sendToUnity(obj) {

    unityInstance.SendMessage('MyGameObject', 'MyMethod', JSON.stringify(obj));

}

// in a script attached to a gameobject named "MyGameObject"

void MyMethod(string s) 

{

    Debug.Log(s);

    // decode from json, do stuff with result etc

}

至于当数据为 JSON 字符串形式时您可以对其执行哪些操作,一旦您在 Unity 中拥有它,您可以使用各种解决方案来解码 JSON 字符串。有关详细信息,请参阅在 Unity 中序列化和反序列化 Json 和 Json 数组。


所以如果你的 js 看起来像这样:


function sendToUnity(obj) {

    unityInstance.SendMessage('MyGameObject', 'MyMethod', JSON.stringify(obj));

}


sendToUnity({

    playerId: "8484239823",

    playerLoc: "Powai",

    playerNick:"Random Nick"

});

你可以在 Unity 中做这样的事情:


[Serializable]

public class Player

{

    public string playerId;

    public string playerLoc;

    public string playerNick;


...


void MyMethod(string s) 

{

    Player player = JsonUtility.FromJson<Player>(s);

    Debug.Log(player.playerLoc);

}


查看完整回答
反对 回复 2023-03-10
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

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


查看完整回答
反对 回复 2023-03-10
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号