C# 从web服务器C Unity接收图像

C# 从web服务器C Unity接收图像,c#,unity3d,server,gameobject,C#,Unity3d,Server,Gameobject,我有一个存储图像的web服务器。在Unity中,我可以接收一个并创建游戏对象来更改其材质。但是,我想接收最多4张图像。1分钟后,我想再次收到最多4张图片。此外,若服务器中有两个图像,我只想创建两个新的游戏对象并更改它们的材质。如果有三个,就创建三个。我该怎么做,谁能帮我?以下是我在Unity中的代码: void Start () { StartCoroutine (LoadImage ()); } IEnumerator LoadImage(){ filename = "im

我有一个存储图像的web服务器。在Unity中,我可以接收一个并创建游戏对象来更改其材质。但是,我想接收最多4张图像。1分钟后,我想再次收到最多4张图片。此外,若服务器中有两个图像,我只想创建两个新的游戏对象并更改它们的材质。如果有三个,就创建三个。我该怎么做,谁能帮我?以下是我在Unity中的代码:

void Start () {
    StartCoroutine (LoadImage ());
}

IEnumerator LoadImage(){

    filename = "image" + k.ToString () + ".png";
    url = "https://wwwfoodparadisehk.000webhostapp.com/" + filename;
    WWW www = new WWW (url);
    yield return www;

    if (www.error != null) {
        Debug.Log (www.error);
    } else {


        Debug.Log (k);


        path = "Assets/MyMaterial" + k.ToString () + ".mat";

        k = k + 1;

        material = new Material (Shader.Find ("Sprites/Default"));
        AssetDatabase.CreateAsset (material, path);

        Debug.Log (AssetDatabase.GetAssetPath (material));

        material.mainTexture = www.texture;
        GameObject newPaperInstance = Instantiate (newpaper) as GameObject;
        newPaperInstance.transform.Find ("Plane001").gameObject.GetComponent<Renderer> ().material = material;


    }



}

我首先向我的服务器要一份我能得到的物品清单。为此,您可以简单地创建一个文本文件或创建自己的PHP文件来创建一个列表,该列表由一个字符(如管道)分隔:

MyMaterial1|MyMaterial2|MyMaterial3
然后,您可以使用与获取图像相同的方式从服务器请求文件,并根据结果创建string[]数组对象。可以使用拆分“|”从结果字符串创建此数组

完成后,可以对数组中的项进行foreach

IEnumerator LoadImages()
{
  string filename = "imagelist.txt";
  string url = "https://wwwfoodparadisehk.000webhostapp.com/" + filename;
  WWW www = new WWW (url);
  yield return www;

  if (www.error != null) 
  {
    Debug.Log (www.error);
  } 
  else 
  {
    string[] images = www.text.Split ('|');
    foreach (var image in images) 
    {
      LoadImage (image);
    }
  }
}
最后但并非最不重要的一点是,您必须创建第二个函数,用于从您提供的字符串加载纹理:

IEnumerator LoadImage(string image)
{
  string url = "https://wwwfoodparadisehk.000webhostapp.com/" + image;
  WWW www = new WWW (url);
  yield return www;

  if (www.error != null) 
  {
    Debug.Log (www.error);
  } 
  else 
  {
    // turn your image into a texture with www.texture and apply it to your objects.
  }