私は、Unityを使用してREST APIからデータを取り出して表示するHoloLensアプリケーションを作成しています。 私は現在、データを取得し、Update()関数から呼び出されるコルーチン内のreturn文を生成するためにWWWデータ型を使用しています。コードを実行しようとすると、APIから最新のデータが取得されますが、誰かが新しいデータをAPIにプッシュすると、リアルタイムで最新のデータが自動的に取得されません。最新のデータ。 マイコード:リソースキャッシュがサーバー上で有効になっているため、WWW/UnityWebRequest POST/GETリクエストでサーバー/ URLから最新のデータが返されない
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;
public class TextChange : MonoBehaviour {
// Use this for initialization
WWW get;
public static string getreq;
Text text;
bool continueRequest = false;
void Start()
{
StartCoroutine(WaitForRequest());
text = GetComponent<Text>();
}
// Update is called once per frame
void Update()
{
}
private IEnumerator WaitForRequest()
{
if (continueRequest)
yield break;
continueRequest = true;
float requestFrequencyInSec = 5f; //Update after every 5 seconds
WaitForSeconds waitTime = new WaitForSeconds(requestFrequencyInSec);
while (continueRequest)
{
string url = "API Link goes Here";
WWW get = new WWW(url);
yield return get;
getreq = get.text;
//check for errors
if (get.error == null)
{
string json = @getreq;
List<MyJSC> data = JsonConvert.DeserializeObject<List<MyJSC>>(json);
int l = data.Count;
text.text = "Data: " + data[l - 1].content;
}
else
{
Debug.Log("Error!-> " + get.error);
}
yield return waitTime; //Wait for requestFrequencyInSec time
}
}
void stopRequest()
{
continueRequest = false;
}
}
public class MyJSC
{
public string _id;
public string author;
public string content;
public string _v;
public string date;
}
、あなたの質問に行ったようにあなたは、Update関数でコルーチン関数を呼び出すべきではありません。それは1秒で60以上のリクエストを作成するようなものです。私はあなたの質問でそれを待ってから再度要求を行うコードに置き換えることで対処しました。それがあなたの問題を解決しないなら、私の答えを見てください。 – Programmer
解決方法を試しましたか? – Programmer
はい、それは魅力的に機能しました.... –