2017-05-11 31 views
0

我有用于存储图像的Web服务器。在Unity中,我可以收到一个并创建gameobject来更改它的材质。但是,我想收到最大不。四个图像。 1分钟后,我想收到最大号码。四个图像再次。此外,如果服务器中有两个图像,我只想创建两个新的gameobject并更改它们的材质。如果有三个,只需创建三个。我该怎么做,任何人都可以帮助我?这里是我在Unity的代码:从Web服务器C#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; 


    } 



} 

回答

0

我想问我的服务器的项目列表,我可以得到。对于这一点,你可以简单地做一个文本文件,或使自己的PHP文件中创建您通过像管一个字符分隔列表(|):

MyMaterial1|MyMaterial2|MyMaterial3 

那么你可以要求从你的服务器上的文件的用同样的方法得到图像,并从结果中创建一个string []数组对象。您可以使用Split('|')从结果字符串创建该数组。

完成后,可以对数组中的项目进行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. 
    }