【Unity】Unityで通信を行うUnityWebRequestの概観をざっくり把握する

Unityで通信を行うためのクラスUnityWebRequestの概観をざっくりまとめました。

Unity2018.3.9

構成と役割

UnityWebRequestによる通信処理は下記の三つのオブジェクトを使って処理されます。

名前 説明
UploadHandler データの送信処理を行う
DownloadHandler 受信したデータを処理する
目的に応じて数種類のDownloadHandlerが用意されている
UnityWebRequest UploadHandlerとDownloadHandlerを使って通信処理する
目的に応じてラッパーがいくつか用意されている

公式ドキュメントは下記です。

docs.unity3d.com

DownloadHandlerの種類

DownloadHandlerには目的に応じた複数のクラスが用意されています。
たとえば最もシンプルなDownloadHandlerBufferは通信が終わった時にバイト配列が得られるだけのものですが、
代わりにDownloadHandlerFileを使うとディスクへの書き込みまでをいい感じに処理してくれます。

以下、ざっくりと各DownloadHandlerについてまとめます。

名前 説明
DownloadHandlerBuffer ダウンロードが完了するとバイト配列を得られる
DownloadHandlerFile ファイルへの書き込みまでをやってくれる
DownloadHandlerTexture UnityWebRequestTextureで通信したときに使う
DownloadHandlerAssetBundle UnityWebRequestAssetBundleで通信したときに使う
DownloadHandlerAudio UnityWebRequestMultimedia.GetAudioClipで通信したときに使う
DownloadHandlerMovieTexture Obsolete
DownloadHandlerScript カスタム用

マニュアルは下記です。

docs.unity3d.com

UnityWebRequestの種類

UnityWebRequestには用途に応じていくつかラッパークラスが存在します。
以下、各クラスについてザックリまとめます。

名前 説明
UnityWebRequest.Get バイト配列や文字列を取得するときに使う
UnityWebRequestTexture.GetTexture
(旧UnityWebRequest.GetTexture)
テクスチャを取得するときに使う
UnityWebRequestAssetBundle.GetAssetBundle
(旧UnityWebRequest.GetAssetBundle)
AssetBundleを取得するときに使う
ただしUnityのキャッシュ機構を使わない場合はUnityWebRequest.Getを使う
UnityWebRequestMultimedia Audioなどを取得するときに使う
WebRequest.Post フォームの送信に使う
UnityWebRequest.PUT アップロードに使う

マニュアルは下記にあります。

docs.unity3d.com

docs.unity3d.com

docs.unity3d.com

docs.unity3d.com