重要: 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-stream
の Content-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;