1. Deklarieren Sie die Variable UnityWebRequest als UWR
2. Verwenden Sie UnityWebRequestTexture, um das Bild herunterzuladen und die Download-Informationen in UWR zu speichern
UWR= UnityWebRequestTexture.GetTexture(Path);
Pfad ist der Pfad zum Speicherort des Bildes (Application.streamingAssetsPath + „/IMG_0206.JPG“).
Achten Sie beim Herunterladen darauf, mithilfe von System.IO zu überprüfen, ob die Download-Adresse vorhanden ist ( bei Verwendung von Datei müssen Sie auf IO verweisen ).
if (File.Exists(Path))
{
Debug.Log(Path + "地址存在");
}
else
{
Debug.Log(Path + "地址不存在");
}
3. Fahren Sie fort, wenn der Bild-Download abgeschlossen ist.
UnityWebRequest.Result.ProtocolError //Überprüfen Sie, ob beim Herunterladen Fehler aufgetreten sind
4. Verwenden Sie DownloadHandlerTexture.GetContent(UWR), um die heruntergeladenen Bildinformationen in Textuer zu konvertieren
Texture2D texture = DownloadHandlerTexture.GetContent(UWR);
Textur ist die deklarierte Textur, die zum Empfang heruntergeladener Bildinformationen verwendet wird
5. Verwenden Sie Sprite.Create, um die heruntergeladene Texture-Datei in eine Sprite-Datei zu konvertieren
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero, 1f)
Sprite.Create(texture, new Rect(0, 0, Texture.width, Texture.height), Vector2.zero, 1f);//将Texture转为Sprite
Textur Txture-Bild, das konvertiert werden muss
Rect (Start-X-Koordinate, Start-Y-Koordinate, Bildbreite, Bildhöhe)
Vektor2.Nullachse
1f Pixel
6. Weisen Sie das konvertierte Sprite dem Bild zu
image.sprite = sprite;
7. Ändern Sie die Größe des Bildes entsprechend dem Bild
image.rectTransform.sizeDelta = new Vector2(texture.width, texture.height);//调整UI image大小为图片大小
8. Verwenden Sie „Datei“, um Texturbilder in StreamingAssets zu speichern
File.WriteAllBytes(Application.streamingAssetsPath + "/w.jpg", texture.EncodeToJPG());//将下载的图片保存到本地
Beachten Sie, dass das Format des gespeicherten Bildes mit Texture.EncodeToJPG übereinstimmt.
Laden Sie Bilder mit UnityWebRequest herunter
IEnumerator IEnReadTexture()
{
Texture2D texture;
UnityWebRequest UWR = UnityWebRequestTexture.GetTexture(Path);
yield return UWR.SendWebRequest();
if (UWR.result != UnityWebRequest.Result.ProtocolError)
{
texture = DownloadHandlerTexture.GetContent(UWR);
Sprite sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero, 1f);//将Texture转为Sprite
//image.rectTransform.sizeDelta = new Vector2(texture.width, texture.height);//调整UI image大小为图片大小
image.sprite = sprite;
}
yield return new WaitForSeconds(3);
}