如何使用JSON Utility将数据从浏览器导入Unity?

时间:2019-02-08 22:10:04

标签: json unity3d unityscript

我刚刚开始编程,无法解决当前存在的以下问题:

我有一个PHP脚本,可检索Raspberry Pi的CPU温度并将其显示在浏览器的本地网络上。我的浏览器中的输出只是一个空白页面,其值例如为只有56.7,而且没有更多。

我现在想知道的是,如果使用JSON Utility可以将该值导入到Unity->更具体地说,使用Vuforia导入增强现实环境中,即使它位于本地网络和唯一的输出就是温度值。

有没有人可以回答这些(可能是微不足道的)问题,并最终可以向我展示代码的样子?

假设我的浏览器中的值一经更改,Unity中的值是否就会更改,这是正确的吗?

我想在此先感谢大家的帮助,即使这些问题对于经验丰富的程序员来说似乎很明显,但我现在仍无法找到正确的答案。

最诚挚的问候!

1 个答案:

答案 0 :(得分:2)

使用UnityWebRequest与您的Raspberry Pi联系。

以任何您喜欢的方式解析DownloadHandler.text。 JSON Utility是解析结果的一种选择,但是如果这是一个仅获得一个传感器值的爱好项目,则可能会过分杀伤。

https://docs.unity3d.com/Manual/UnityWebRequest-RetrievingTextBinaryData.html

要使用JsonUtility解析json,您将创建一个类来保存数据,并确保使用Serializable属性对其进行标记。

[System.Serializable]
public class MyData
{
    public float temperature;
}

然后在RetrievingTextBinaryData示例中像这样解析它

MyData myData = JsonUtility.FromJson<MyData>(www.downloadHandler.text)

假设您的JSON看起来像这样

{ "temperature":30.7 }

注意:要使其不断轮询Raspberry Pi以获取更新,您将需要使用Update()方法而不是示例代码中的Start()来下载温度。