Deca-pod.jp

Anything

Unity GUI 複数のボタンからどのボタンが押されたか判別をする方法

UnityでUIを簡単に扱えるようになった。

複数のボタンを並べてみたところ、どのボタンが押されたか判別する方法がわからなかった。

f:id:vaikong:20150127022937p:plain

結論から言うと引数を渡せばOK。
基本的過ぎてあまり情報は載っていなかった。

手順
まず、ボタンAとボタンB、そしてテキストを作成する。

f:id:vaikong:20150127023534p:plain

C#スクリプトを作成してCanvasへアタッチ

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    Public Text text;

	public void OnClick(int number)
    {
        switch (number)
        {
            case 0:
                text.text = "A";
                break;
            case 1:
                text.text = "B";
                break;
            default:
                break;
        }
    }
}

Canvasのtextを指定する。
f:id:vaikong:20150127024558p:plain
そしてボタンのインスペクターのOn Clickへ上記の引数ありのメソッドを指定する。

f:id:vaikong:20150127023727p:plain

そうしましたらおめでとうございます。
引数はなにを渡しましょうかと聞かれてくるのでここでは0と1を各ボタンに指定してあげてください。

f:id:vaikong:20150127024052p:plain
これでボタン判別はばっちりです。