ノート: UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログ と FAQ を参照してください。 |
現在のところ、利用可能なアップロードハンドラーの種類は UploadHandlerRaw
のみです。このクラスは、コンストラク作成時にデータバッファを受け取ります。このバッファは内部的にネイティブコードのメモリにコピーされ、サーバがボディを受け入れる準備ができたら UnityWebRequest
によって使用されます。
Upload Handler は、コンテンツタイプも受け入れます。この文字列は、UnityWebRequest 自体に Content-Type
ヘッダーを設定しない場合に、UnityWebRequest の Content-Type
ヘッダーの値として使用されます。UnityWebRequest オブジェクトに Content-Type
ヘッダーを手動で設定した場合は、Upload Handler オブジェクトの Content-Type
は無視されます。
UnityWebRequest または UploadHandler
のいずれかに Content-Type
を設定しないと、システムはデフォルトで application/octet-stream
の Content-Type
を設定します。
UnityWebRequest
にはdisposeUploadHandlerOnDispose
というプロパティがあります。デフォルトは true になっています。 このプロパティが true の場合、UnityWebRequest オブジェクトが破棄されると、アタッチされた Upload Handler で Dispose() も呼び出され、レンダリングを無効にします。Upload Handler への参照を UnityWebRequest への参照よりも長く保持する場合は、disposeUploadHandlerOnDispose を false に設定します。
byte[] payload = new byte[1024];
// ... playload の配列を定義します ...
UnityWebRequest wr = new UnityWebRequest("http://www.mysite.com/data-upload");
UploadHandler uploader = new UploadHandlerRaw(payload);
// ヘッダー: "Content-Type: custom/content-type"; を設定します
uploader.contentType = "custom/content-type";
wr.uploadHandler = uploader;