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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?