Version: 2023.1
言語: 日本語
UnityWebRequests の作成
DownloadHandler の作成

UploadHandler の作成

重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。

現在のところ、利用可能なアップロードハンドラーの種類は UploadHandlerRaw のみです。このクラスは、コンストラク作成時にデータバッファを受け取ります。このバッファは内部的にネイティブコードのメモリにコピーされ、サーバがボディを受け入れる準備ができたら UnityWebRequest によって使用されます。

Upload Handler は、コンテンツタイプも受け入れます。この文字列は、UnityWebRequest 自体に Content-Type ヘッダーを設定しない場合に、UnityWebRequest の Content-Type ヘッダーの値として使用されます。UnityWebRequest オブジェクトに Content-Type ヘッダーを手動で設定した場合は、Upload Handler オブジェクトの Content-Type は無視されます。

UnityWebRequest または UploadHandler のいずれかに Content-Type を設定しないと、システムはデフォルトで application/octet-streamContent-Type を設定します。

UnityWebRequest にはdisposeUploadHandlerOnDispose というプロパティがあります。デフォルトは true になっています。 このプロパティが true の場合、UnityWebRequest オブジェクトが破棄されると、アタッチされた Upload Handler で Dispose() も呼び出され、レンダリングを無効にします。Upload Handler への参照を UnityWebRequest への参照よりも長く保持する場合は、disposeUploadHandlerOnDispose を false に設定します。

byte[] payload = new byte[1024];
// ... payload にデータを入力します...

UnityWebRequest wr = new UnityWebRequest("https://www.mysite.com/data-upload");
UploadHandler uploader = new UploadHandlerRaw(payload);

// ヘッダー: "Content-Type: custom/content-type"; を送信
uploader.contentType = "custom/content-type";

wr.uploadHandler = uploader;
UnityWebRequests の作成
DownloadHandler の作成