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