unity 3d与服务器以及数据库进行数据交互!!!(UnityWebRequest)

unity 3d与服务器以及数据库进行数据交互!!!(UnityWebRequest)

  • 数字孪生最重要的一步便是数据的通信,这里的数据通信包含了,数字模型和物理模型之间的通信。而对于数字模型在前面的介绍(跳转前面介绍的),我们采用的是unity3d来完成的,当然这里介绍的数据交互,重要也是以unity3d来介绍,但是大致的思想和原理都是一样的。下面简单做个介绍:
  • 这里是我的理解,如果有错误的地方还请大家指出来,一起交流,学习。在unity 3d中自己采用的是C#脚本来完成。采用的是API的方式,类似与web的数据交互,也是通过搭建后端服务,然后后端服务将从数据库取出来的数据进行处理,在以API的形式,发送到前端,这时候前端只需要请求这个地址,并传对应的参数,即可完成数据的交互。
  • 这里是代码,大家参考一下,过程比较简单,就不画图了,如果需要可以在评论区,回复,根据情况在画!
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Networking;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

public class http : MonoBehaviour
{
    public float speed = 0.1f;

    //private int degree;
    public string rssTitle;
    public GameObject LightObj;
    public Light LightCon;
    void Start()
    {
        //StartCoroutine(GetTexture());
        LightCon = LightObj.GetComponent();
        InvokeRepeating("doSomething", 0, 2);
    }
    void doSomething()
    {
       StartCoroutine(GetTexture());
    }
    IEnumerator GetTexture()
    {
       
        UnityWebRequest www = UnityWebRequest.Get("http://127.0.0.1:3000/day");
        yield return www.SendWebRequest();
        if (www.isNetworkError || www.isHttpError)
        {
            Debug.Log(www.error);
        }
        else
        {
            // 将结果显示为文本
            string product = www.downloadHandler.text;
            JObject rss = JObject.Parse(product);
            rssTitle = (string)rss["result"][0]["day"];
            if (rssTitle == "1")
            {
                LightCon.enabled = false;
                 Debug.Log("1");
            }
            if (rssTitle == "0")
            {
                LightCon.enabled = true;
                Debug.Log("0");
            }
            // 或者以二进制数据格式检索结果
            byte[ ] results = www.downloadHandler.data;
        }
    }
}

你可能感兴趣的:(数字孪生,unity,3d,交互)