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;}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!