【Unity】一度だけ押せるボタンを作ろう


uGUIで一度だけ押せるButtonを作ろう


機能的に一度だけ押せるボタンを作ってみましょう!
ボタン自体を削除したり、コンポーネントごと無効にするのはナシの方向で!

※使用しているUnityのバージョンは2017.1.1f1です。

ポイントは3つ


■ ボタンの有効/無効の切り替えは、Buttonコンポーネントの Interactable を使う。
public関数を自分で作成し、Interactableの値を False にする処理を記述する。
■ 上記の関数をButtonコンポーネントの On Click 機能から呼び出す!

スクリプトを記述する


using UnityEngine;
using UnityEngine.UI;

public class Sample : MonoBehaviour {

	Button btn;

	void Start () {
		btn = GetComponent<Button>();
	}

	public void OneClick() {
		btn.interactable = false;
	}
}

Button型の変数を用意して、Start内でButtonコンポーネントをGetComponentします。
※ Buttonクラスを使用するためには、2行目のようにusingでUnityEngine.UIを宣言する必要があるので忘れずに!

ボタンから呼び出すための関数をpublicで作成(OneClickという関数名にしていますが、関数名は何でもいいです)し、interactableにfalseを代入します。
※「コンポーネント.プロパティ名」で、コンポーネントが持つ各プロパティにアクセス出来ます。知らなかったら絶対に覚えておきましょう!

On Click からメソッドを呼び出す


まず、作成したスクリプトをButtonオブジェクトにアタッチします。
次に、ButtonコンポーネントのOn Click () 右下の 「+」マークを押下して、Listを追加します。

アタッチしたスクリプトを、On Clickのドラッグ&ドロップで紐づけます。

No Function のプルダウンから、クラス名 → メソッド名で、呼び出したいメソッドを選択します。

最終的にこんな感じに仕上がればOK

シーンを再生してボタンをクリックしてみる


一度しかクリックできなければ成功です。
ボタンをクリックしたタイミングで、Interactableのチェックが外れていることがわかります。

シーンを再び読み込んだり、何らかの方法でInteractableをtrueにしない限り、二度とクリックは出来ません。

以上です。

今月の新着記事

【Unity】一度だけ押せるボタンを作ろう
【解けないとマズい練習問題】C# 練習問題 10

記事一覧にもどる

  • このエントリーをはてなブックマークに追加

PAGE TOP