Unityで通信を行うためのクラスUnityWebRequestの概観をざっくりまとめました。
Unity2018.3.9
構成と役割
UnityWebRequestによる通信処理は下記の三つのオブジェクトを使って処理されます。
| 名前 | 説明 |
|---|---|
| UploadHandler | データの送信処理を行う |
| DownloadHandler | 受信したデータを処理する 目的に応じて数種類のDownloadHandlerが用意されている |
| UnityWebRequest | UploadHandlerとDownloadHandlerを使って通信処理する 目的に応じてラッパーがいくつか用意されている |
公式ドキュメントは下記です。
DownloadHandlerの種類
DownloadHandlerには目的に応じた複数のクラスが用意されています。
たとえば最もシンプルなDownloadHandlerBufferは通信が終わった時にバイト配列が得られるだけのものですが、
代わりにDownloadHandlerFileを使うとディスクへの書き込みまでをいい感じに処理してくれます。
以下、ざっくりと各DownloadHandlerについてまとめます。
| 名前 | 説明 |
|---|---|
| DownloadHandlerBuffer | ダウンロードが完了するとバイト配列を得られる |
| DownloadHandlerFile | ファイルへの書き込みまでをやってくれる |
| DownloadHandlerTexture | UnityWebRequestTextureで通信したときに使う |
| DownloadHandlerAssetBundle | UnityWebRequestAssetBundleで通信したときに使う |
| DownloadHandlerAudio | UnityWebRequestMultimedia.GetAudioClipで通信したときに使う |
| DownloadHandlerMovieTexture | Obsolete |
| DownloadHandlerScript | カスタム用 |
マニュアルは下記です。
UnityWebRequestの種類
UnityWebRequestには用途に応じていくつかラッパークラスが存在します。
以下、各クラスについてザックリまとめます。
| 名前 | 説明 |
|---|---|
| UnityWebRequest.Get | バイト配列や文字列を取得するときに使う |
| UnityWebRequestTexture.GetTexture (旧UnityWebRequest.GetTexture) |
テクスチャを取得するときに使う |
| UnityWebRequestAssetBundle.GetAssetBundle (旧UnityWebRequest.GetAssetBundle) |
AssetBundleを取得するときに使う ただしUnityのキャッシュ機構を使わない場合はUnityWebRequest.Getを使う |
| UnityWebRequestMultimedia | Audioなどを取得するときに使う |
| WebRequest.Post | フォームの送信に使う |
| UnityWebRequest.PUT | アップロードに使う |
マニュアルは下記にあります。