zoukankan      html  css  js  c++  java
  • Unity加载外部图片

    在这里记录一下在 Unity3D 中分别使用 WWW 和 IO 流加载外部图片

    使用 WWW 加载

        /// <summary>
        /// 使用 WWW 加载图片,并赋值给 _rawImage
        /// </summary>
        /// <param name="_url">图片地址</param>
        /// <param name="_rawImage"></param>
        /// <returns></returns>
        public static IEnumerator LoadTexture2DByWWW(string _url, RawImage _rawImage)
        {
            WWW _www = new WWW(_url);
            yield return _www;
            if (_www.error == null)
            {
                _rawImage.texture = _www.texture;
            }
            else
            {
                Debug.LogError(_www.error);
            }
        }
        /// <summary>
        /// 使用 WWW 加载图片,并将图片转换成 Sprite 类型赋值给 _image
        /// </summary>
        /// <param name="_url">图片地址</param>
        /// <param name="_image"></param>
        /// <returns></returns>
        public static IEnumerator LoadSpriteByWWW(string _url, Image _image)
        {
            WWW _www = new WWW(_url);
            yield return _www;
            if (_www.error == null)
            {
                _image.sprite = Sprite.Create(_www.texture, new Rect(0, 0, _www.texture.width, _www.texture.height), new Vector2(0.5f, 0.5f));
            }
            else
            {
                Debug.LogError(_www.error);
            }
        }

    使用 IO 流加载

     1     /// <summary>
     2     /// 使用 IO 流加载图片,并返回。
     3     /// </summary>
     4     /// <param name="_url">图片地址</param>
     5     /// <returns></returns>
     6     public static Texture2D LoadTexture2DByIO(string _url)
     7     {
     8         //创建文件读取流
     9         FileStream _fileStream = new FileStream(_url, FileMode.Open, FileAccess.Read);
    10         _fileStream.Seek(0, SeekOrigin.Begin);
    11         //创建文件长度缓冲区
    12         byte[] _bytes = new byte[_fileStream.Length];
    13         _fileStream.Read(_bytes, 0, (int)_fileStream.Length);
    14         _fileStream.Close();
    15         _fileStream.Dispose();
    16         //创建Texture
    17         Texture2D _texture2D = new Texture2D(1, 1);
    18         _texture2D.LoadImage(_bytes);
    19         return _texture2D;
    20     }
    21     /// <summary>
    22     /// 使用 IO 流加载图片,并将图片转换成 Sprite 类型返回
    23     /// </summary>
    24     /// <param name="_url">图片地址</param>
    25     /// <returns></returns>
    26     public static Sprite LoadSpriteByIO(string _url)
    27     {
    28         Texture2D _texture2D = LoadTexture2DByIO(_url);
    29         Sprite _sprite = Sprite.Create(_texture2D, new Rect(0, 0, _texture2D.width, _texture2D.height), new Vector2(0.5f, 0.5f));
    30         return _sprite;
    31     }
  • 相关阅读:
    web test Grinder / nGrinder / ngrinder / gor / tcpcopy
    【python学习】之五、可调用对象
    【C/C++学习】之五、dynamic_cast
    【网络编程】之一、初识WinSocket
    【啊哈!算法】之四、选择排序
    【IOS学习】之二、虚拟机MAC Lion 10.7 下问题集锦和xcode的安装
    【网络编程】之二、socket API学习
    【C/C++学习】之六、reinterpret_cast
    【啊哈!算法】之五、归并排序
    【IOS学习】之一、VM8下安装mac lion10.7 黑苹果之续
  • 原文地址:https://www.cnblogs.com/xiaoyulong/p/9460052.html
Copyright © 2011-2022 走看看