Как получить результат WWWPost в единстве - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь научиться делать POST, используя WWW-формы Unity в C #.Однако, попробовав несколько примеров в документации, я все еще не могу понять, как получить результат или даже узнать, успешно ли он публикуется.Вот страница, на которой я получил код https://docs.unity3d.com/ScriptReference/WWW.html

Я попытался создать бесконечный цикл в main и назначить статическую переменную, когда публикация завершена, но она никогда не назначается.Сначала я думал, что это потому, что консоль закрывалась слишком быстро, но это было не так.

class Program : MonoBehaviour
{
    public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
    IEnumerator Start()
    {
        using (WWW www = new WWW(url))
        {
            yield return www;
            Renderer renderer = GetComponent<Renderer>();
            renderer.material.mainTexture = www.texture;
            Console.WriteLine("Success");
        }
    }

    static void Main(string[] args)
    {
    }
}

Я ожидал, что он будет напечатан успешно после отправки ответа, но вместо этого он закроется.

1 Ответ

0 голосов
/ 13 мая 2019

Две вещи

  1. IEnumerator Start() - это сопрограмма.Это означает, что он будет приостанавливать и возобновлять выполнение по мере необходимости, заданное возвращаемым значением yield.Если вы хотите думать о сопрограммах как о нитях, вы можете, но просто понимаете, что (а) они не являются и (б) ими управляют для вас.

  2. Ваш код не будет работать, если он не прикреплен к игровому объекту на сцене.

Похоже, что вы новичок из не-Unity-разработки, о чем свидетельствует static void Main, и ссылка на окно консоли закрывается слишком быстро.Unity является , а не консольным приложением, и магические методы вызываются только при необходимости, в этом случае, когда каждый GameObject с этим компонентом, прикрепленным к нему, сначала инициализируется.Вы не можете просто import Unity и ожидать, что он будет работать как любая другая библиотека (Unity не является библиотекой).

...