加载网络图片要用到UnityWebRequest类下的方法,访问图片的URL地址之后,再将获取的内容转换为对应的格式赋值即可。将图片用3D平面显示和用UI的图像显示,只在转换格式和赋值的时候有区别。
/// <summary>
/// 加载图片
/// </summary>
/// <returns></returns>
IEnumerator LoadImage()
{
using (UnityWebRequest webRequest = new UnityWebRequest())
{
//设置URL
webRequest.url = inputField.text;
//设置访问方式
webRequest.method = UnityWebRequest.kHttpVerbGET;
//设置下载类型
webRequest.downloadHandler = new DownloadHandlerTexture();
//协程等待
yield return webRequest.SendWebRequest();
if (webRequest.isNetworkError || webRequest.isHttpError)
{
Debug.Log(webRequest.error);
}
else
{
//将图片加载到3D平面
plane.GetComponent<Renderer>().material.mainTexture =
DownloadHandlerTexture.GetContent(webRequest);
//将图片加载到UI图片
Texture2D texture2D =
DownloadHandlerTexture.GetContent(webRequest);
image.sprite = Sprite.Create(
texture2D,
new Rect(0, 0, texture2D.width, texture2D.height),
new Vector2(0.5f, 0.5f));
}
}
加载网络视频,这里指的只是短小的视频内容,不是视频网站的视频流的那种,是简单的一个可以下载的视频文件。
VideoPlayer组件加载网络视频很简单,直接赋值即可。
/// <summary>
/// 加载视频
/// </summary>
public void LoadVideo()
{
videoPlayer.url = inputField.text;
videoPlayer.Play();
}