Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее См. в Словарь Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects. |
Чтобы получить файл текстуры с удаленного сервера, вы можете использовать UnityWebRequest.Texture.
Эта функция очень похожа на UnityWebRequest.GET
, но оптимизирован для эффективной загрузки и хранения текстур.
Эта функция принимает в качестве аргумента одну строку. Строка указывает URL-адрес, с которого вы хотите загрузить файл изображения для использования в качестве текстуры.
Подробнее
- Эта функция создает
UnityWebRequest
и устанавливает целевой URL в качестве строкового аргумента. Эта функция не устанавливает никаких других флагов или пользовательских заголовков. - Эта функция прикрепляет объект
DownloadHandlerTexture
кUnityWebRequest
. DownloadHandlerTexture — это специализированный обработчик загрузки, оптимизированный для хранения изображений, которые будут использоваться в качестве текстур в движке Unity. Использование этого класса значительно сокращает перераспределение памяти по сравнению с загрузкой необработанных байтов и созданием Текстуры вручную в сценарии. - По умолчанию эта функция не прикрепляет обработчик загрузки. При желании вы можете добавить его вручную.
Пример
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class MyBehaviour : MonoBehaviour {
void Start() {
StartCoroutine(GetTexture());
}
IEnumerator GetTexture() {
UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://www.my-server.com/image.png");
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) {
Debug.Log(www.error);
}
else {
Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
}
}
}
В качестве альтернативы вы можете реализовать GetTexture с помощью вспомогательного геттера:
IEnumerator GetTexture() {
UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://www.my-server.com/image.png");
yield return www.SendWebRequest();
Texture myTexture = DownloadHandlerTexture.GetContent(www);
}