Unity UnityWebRequest 没有返回值

Unity UnityWebRequest is not returning a value

我有一些代码可以从数据库中获取一些数据。在我的游戏中使用。 我已经设置了一个协同程序来统一使用 WWW 框架获取这些数据。 但是当我 运行 我的代码时,数据永远不会记录在我的 yield return 函数中。为什么会这样?请参阅下面的代码以了解不起作用的点:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;

public class Main : MonoBehaviour {

    void Start () {
        Debug.Log("run ma routine");
        StartCoroutine(GetText("http://localhost/artez/praktijk_opdracht/interface_v4/app/php/get_fashion.php", (result) =>{
            Debug.Log(result); // this log function is never logging a value.. Why is this?
        }));
    }

    void Update () 
    {
    }

    IEnumerator GetText(string url, Action<string> result) {
        UnityWebRequest www = UnityWebRequest.Get(url);
        yield return www.SendWebRequest();

        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            Debug.Log(www.downloadHandler.data); // this log is returning the requested data. 
        }
    }
}

我想要的是 StartCoroutine() 来记录数据,而不是 IEnumerator()

内部的 debug.log

如果需要更多解释,我很乐意提供。

GetText 函数内完成 UnityWebRequest 请求后,您必须调用结果 Action

if (result != null)
    result(www.downloadHandler.text);

新的GetText函数:

IEnumerator GetText(string url, Action<string> result)
{
    UnityWebRequest www = UnityWebRequest.Get(url);
    yield return www.SendWebRequest();

    if (www.isNetworkError || www.isHttpError)
    {
        Debug.Log(www.error);
        if (result != null)
            result(www.error);
    }
    else
    {
        Debug.Log(www.downloadHandler.data); // this log is returning the requested data. 
        if (result != null)
            result(www.downloadHandler.text);
    }
}