Unityを使ってWebAPIに接続する処理のサンプル。 自作の簡単なWebAPIにPOSTでデータを送信し、戻り値のJSONを取得し、そのまま文字列として画面に表示。
通信を始めてから戻り値が帰ってくるまで待つのはどうやるのかというのを整理して理解するために作りました。
[主要なスクリプト] Unity_WebApiConnectSample/WebApiConnectSample/Assets/script/ConnectWebApiSample.cs
画面への表示もスクリプトから行っているため、シーンビューにはオブジェクトらしいオブジェクトは見当たりません。
コルーチンと呼ばれる、IEnumerator を戻り値とするメソッド内に、yield return 文を含む無限ループを作ってやると、毎フレームそのループを一度ずつだけ実行します。 前回ループまでの処理内容は保持されます。 コルーチンは StartCoroutine() メソッドでスタートさせます。これは一度実行すればいいので Start() 内で記述しています。
WebAPIに接続するWWWインスタンスが一度作られ、そのインスタンスが保持されたまま、通信によるデータの取得が完了するまで毎フレームisDoneプロパティをチェックしています。
値が取り出せたらもう毎フレーム実行させる必要はないので、無限ループから脱出させ、コルーチンを終了しています。