Unity の NGUI でボタン押下時に HTTP 通信をする
はじめに
- Unity で NGUI(v3.5.6) と WWW を使って、ボタン押下時に HTTP 通信をする
準備
- [NGUI] > [Create] > [2D UI] で NGUI の準備
- アセットから "simple button" でボタンのプレハブを検索し、ヒエラルキーにドラッグアンドドロップ
スクリプト作成
using UnityEngine; using System.Collections; public class WWWOnClickScript : MonoBehaviour { // HTTP 通信実行後のコールバックメソッド型 private delegate void WWWCallback (WWW www); // HTTP 通信起動メソッド public void WWWOnClick () { // HTTP 通信先 URL string url = "http://www.google.co.jp"; // HTTP 通信メソッドの実行 // 第二引数には通信実行後に起動するコールバッグメソッドを無名関数で記載 StartCoroutine(this.DoWWW (new WWW (url), (www) => { Debug.Log("" + www.text); })); } // HTTP 通信実行メソッド private IEnumerator DoWWW (WWW www, WWWCallback callback) { // HTTP 通信のレスポンスが返るまで待つ yield return www; // コールバック関数の実行 if (callback != null) callback (www); }
スクリプトのアタッチ
- 以下のスクリプトを作成し、ボタンにアタッチ
- ボタンのインスペクターの UIButton の OnClick の Notify 項目に、ボタン自信をドラッグアンドドロップし、Method 項目に WWWOnClick メソッドを指定する
動作確認
- シーンを実行し、作成したボタンを押下、ちょっと待ったあとに Console にログが出てくるのを確認する