nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

Unity の NGUI でボタン押下時に HTTP 通信をする

はじめに

  • Unity で NGUI(v3.5.6) と WWW を使って、ボタン押下時に HTTP 通信をする

準備

スクリプト作成

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 にログが出てくるのを確認する