Важно: UNet — это устаревшее решение, а также новая многопользовательская и сетьсистема Unity, которая обеспечивает многопользовательскую игру. игры через компьютерную сеть. Подробнее См. в Словарь Решение (Netcode для GameObjects) находится в разработке. Дополнительную информацию и дальнейшие действия см. на веб-сайте Unity Netcode for GameObjects. |
Некоторые современные веб-приложения предпочитают загружать файлы с помощью HTTP-команды PUT. Для этого сценария Unity предоставляет функцию UnityWebRequest.PUT
.
Эта функция принимает два аргумента. Первый аргумент представляет собой строку и указывает целевой URL-адрес для запроса. Второй аргумент может быть либо строкой, либо массивом байтов и указывает данные полезной нагрузки, отправляемые на сервер.
Сигнатуры функций:
WebRequest.Put(string url, string data);
WebRequest.Put(string url, byte[] data);
Подробнее
- Эта функция создает
UnityWebRequest
и задает тип содержимогоapplication/octet-stream
. - Эта функция прикрепляет стандартный
DownloadHandlerBuffer
кUnityWebRequest
. Как и в случае с функциями POST, вы можете использовать это для возврата данных результатов из ваших приложений. - Эта функция сохраняет входные данные загрузки в стандартный объект
UploadHandlerRaw
и прикрепляет их кUnityWebRequest
. В результате при использовании функцииbyte[]
изменения, внесенные в массив байтов, выполненные после вызоваUnityWebRequest.PUT
, не отражается в данных, загруженных на сервер.
Пример
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class MyBehavior : MonoBehaviour {
void Start() {
StartCoroutine(Upload());
}
IEnumerator Upload() {
byte[] myData = System.Text.Encoding.UTF8.GetBytes("This is some test data");
UnityWebRequest www = UnityWebRequest.Put("https://www.my-server.com/upload", myData);
yield return www.SendWebRequest();
if (www.result != UnityWebRequest.Result.Success) {
Debug.Log(www.error);
}
else {
Debug.Log("Upload complete!");
}
}
}