(一)原理:
WWW类,通过图片在服务器的地址,生成的对象,只能得到一张Texture2D类型的贴图
。(还不能被Image使用)
需要以这张Texture2D类型贴图为参数,创建Image能用的Sprite
。
(二)代码:
代码直接放在了Image组件上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class DownLoadImageFromServer : MonoBehaviour
{
void Start()
{
//异步加载
StartCoroutine(DownloadImage());
}
void Update()
{
}
IEnumerator DownloadImage()
{
//WWW类,通过图片在服务器的地址,生成类对象
string path = "121.36.49.39/WebGl/DR/DRResource/DogPics/1.1头部侧位体位摆放" + ".png";
WWW www = new WWW(path);
yield return www;
//得到一张Texture2D类型的贴图
Texture2D texture2D = www.texture;
//以这张Texture2D类型贴图为参数,创建Image能用的Sprite
Sprite createSprite = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), new Vector2(0, 0));
gameObject.GetComponent<Image>().sprite = createSprite;
texture2D = null;
}
}
(三)注意:
1、必须异步加载 (直接放在Start里加载,会提示没加载完成)——下图1及小图
2、必须得把Texture2D对象清空 ——下图2
3、必须注明图片格式 ——下图3
(四)用UnityWebRequest,从服务器 下载图片
Unity引擎提示WWW类快被废弃了——UnityWebRequest类
与 WWW类
,下载图片过程的主要区别,有两点:一是连接服务器的方式(红框),二是得到Texture2D的方式(紫框)。对比图如下
WebRequest类
WWW类
代码链接:Unity用UnityWebRequest,从服务器 下载图片