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<Light>();
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;
}
}
}
文章来源地址https://www.toymoban.com/news/detail-530385.html
文章来源:https://www.toymoban.com/news/detail-530385.html
到了这里,关于unity 3d与服务器以及数据库进行数据交互!!!(UnityWebRequest)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!