当前位置:   article > 正文

Unity从网络中获取图片加载到物体上_unity加载网络图片

unity加载网络图片

Unity使用UnityWebRequest从网络中获取图片并加载在2D/3D物体上

首先从网络中获取资源使用的是协程(从来没遇到在主线程中下载资源的情况)
如果图片附加到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;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/103481?site
推荐阅读
相关标签
  

闽ICP备14008679号