如何统一获得WWWPost的结果

时间:2019-05-13 16:06:57

标签: c# unity3d ienumerator

我正在尝试学习如何在C#中使用unity的WWWForms进行POST。但是,在尝试了一些文档示例之后,我仍然无法弄清楚如何获得结果,甚至无法知道结果是否成功发布。这是我从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 :(得分:0)

两件事

  1. IEnumerator Start()是协程。这意味着它将根据返回值yield的指定暂停并恢复执行。如果您想将协程视为线程,则可以,但是只需了解(a)不是,并且(b)为您管理它们。

  2. 除非将代码附加到场景中的游戏对象,否则您的代码将不会运行。

您似乎是来自非Unity开发的新用户,这一点由static void Main证明,并且引用控制台窗口关闭得太快。 Unity不是控制台应用程序,而是魔术方法,只有在适当的时候才调用魔术方法,在这种情况下,首先是每个带有此组件的GameObject初始化。您不能只是import Unity并期望它像任何其他库一样工作(Unity不是库)。