赞
踩
首先从网络中获取资源使用的是协程(从来没遇到在主线程中下载资源的情况)
如果图片附加到2D/3D物体上出现红色问号,要么是路径有问题,要么是代码逻辑有问题(协程内部的逻辑有没有问题,调用协程有没有问题(是用StartCoroutine来调用协程的,别傻乎乎的像调用普通的方法一样去调用协程,那样不起作用(我就犯过这个错)))
如果是从网页中随便找的一张图来给物体赋值的话,要检查这个图片的地址有没有问题(图片地址一般是.jpg结尾),如果不对,Please自行百度查看图片的真正地址是什么
最后就是代码了,只是一个简单的小栗子
StartCoroutine(LoadTextureFromInternet("http://avatar.csdnimg.cn/1/E/6/2_u013012420.jpg")); IEnumerator LoadTextureFromInternet(string path) { UnityWebRequest request = new UnityWebRequest(path); //给request的downloadhandle赋值,new出来的UnityWebRequest不附加downloadhandle //数据,不赋值的话访问不到下载出来的数据 DownloadHandlerTexture texture = new DownloadHandlerTexture(true); request.downloadHandler = texture; yield return request.Send(); if (string.IsNullOrEmpty(request.error)) { pic = texture.texture; } Image tempImage = GameObject.Find("Image").GetComponent<Image>(); Sprite sp = Sprite.Create((Texture2D)pic, new Rect(0, 0, pic.width, pic.height), Vector2.zero); tempImage.sprite = sp; GameObject go = GameObject.Find("Cube"); go.GetComponent<MeshRenderer>().material.mainTexture = pic; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。