一、簡(jiǎn)單介紹
Unity中的一些基礎(chǔ)知識(shí)點(diǎn),便于后期查看學(xué)習(xí)。
本節(jié)介紹,如何動(dòng)態(tài)加載網(wǎng)絡(luò)上,電腦上或者Android手機(jī)上指定路徑的圖片的簡(jiǎn)單方式,方法不唯一,僅供參考。
二、實(shí)現(xiàn)原理
1、UnityWebRequest 發(fā)起網(wǎng)絡(luò)請(qǐng)求,DownloadHandlerTexture 作為發(fā)起下載圖片,解析得到圖片
2、下載地址不僅支持網(wǎng)絡(luò)路徑,電腦端和Android 手機(jī)端等路徑也支持
三、注意事項(xiàng)
1、移動(dòng)端,例如 Android 注意請(qǐng)給讀寫權(quán)限
2、因?yàn)橐虞d網(wǎng)絡(luò)服務(wù)器上的圖片,還需要網(wǎng)絡(luò)開啟哈
四、效果預(yù)覽
五、實(shí)現(xiàn)步驟
1、打開Unity,新建工程
2、在場(chǎng)景上布局UI,顯示加載的圖片
3、新建腳本,編輯代碼,把腳本掛載到 UI上,勾選是加載網(wǎng)絡(luò)圖片,還是電腦Android上的圖片
4、注意,Android 注意 給讀寫權(quán)限
5、運(yùn)行效果如上
六、關(guān)鍵代碼
-
using System;
-
using System.Collections;
-
using System.Collections.Generic;
-
using UnityEngine;
-
using UnityEngine.Networking;
-
using UnityEngine.UI;
-
public class LoadPicture : MonoBehaviour
-
{
-
public bool isLoadNetImage = false;
-
[SerializeField]
-
// 網(wǎng)絡(luò)上的圖片,也可以加載
-
private string url = @"http://a2.att.hudong.com/36/48/19300001357258133412489354717.jpg";
-
RawImage rawImage;
-
public string Url { get => url;
-
set {
-
url = value;
-
GetTexture(url, SetTexttureToRawImage);
-
}
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-699387.html -
}
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-699387.html -
private void Start()
-
{
-
rawImage = GetComponent<RawImage>();
-
if (isLoadNetImage)
-
{
-
// 加載網(wǎng)絡(luò)服務(wù)器的圖片
-
GetTexture(url, SetTexttureToRawImage);
-
}
-
else {
-
#if UNITY_EDITOR
-
// 加載PC端上的圖片
-
GetTexture(@"D:\Tmp\Images\HappFish.png",
-
SetTexttureToRawImage);
-
#else
-
// 加載Android端的圖片
-
GetTexture(@"file:///storage/emulated/0/tencent/MicroMsg/WeiXin/mmexport1537166579555.jpg",
-
SetTexttureToRawImage);
-
#endif
-
}
-
}
-
void SetTexttureToRawImage(Texture texture)
-
{
-
if (rawImage ==null)
-
{
-
rawImage = GetComponent<RawImage>();
-
}
-
rawImage.texture = texture;
-
}
-
/// <summary>
-
/// 請(qǐng)求圖片
-
/// </summary>
-
/// <param name="url">圖片地址,like 'http://www.my-server.com/image.png '</param>
-
/// <param name="action">請(qǐng)求發(fā)起后處理回調(diào)結(jié)果的委托,處理請(qǐng)求結(jié)果的圖片</param>
-
/// <returns></returns>
-
public void GetTexture(string url, Action<Texture2D> actionResult)
-
{
-
StartCoroutine(_GetTexture(url, actionResult));
-
}
-
/// <summary>
-
/// 請(qǐng)求圖片
-
/// </summary>
-
/// <param name="url">圖片地址,like 'http://www.my-server.com/image.png '</param>
-
/// <param name="action">請(qǐng)求發(fā)起后處理回調(diào)結(jié)果的委托,處理請(qǐng)求結(jié)果的圖片</param>
-
/// <returns></returns>
-
IEnumerator _GetTexture(string url, Action<Texture2D> actionResult)
-
{
-
UnityWebRequest uwr = new UnityWebRequest(url);
-
DownloadHandlerTexture downloadTexture = new DownloadHandlerTexture(true);
-
uwr.downloadHandler = downloadTexture;
-
yield return uwr.SendWebRequest();
-
Texture2D t = null;
-
if (!(uwr.isNetworkError || uwr.isHttpError))
-
{
-
t = downloadTexture.texture;
-
}
-
else
-
{
-
Debug.Log("下載失敗,請(qǐng)檢查網(wǎng)絡(luò),或者下載地址是否正確 ");
-
}
-
if (actionResult != null)
-
{
-
actionResult(t);
-
}
-
}
-
}
到了這里,關(guān)于UNITY 基礎(chǔ)之 實(shí)現(xiàn)動(dòng)態(tài)加載網(wǎng)絡(luò)端、PC端和 ANDROID 端指定路徑下的圖片的簡(jiǎn)單方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!