【unity入門】interactableを使った!一度だけ押せるButtonの作り方

2019年5月7日

unityでゲームを作っていると一度だけ押せるボタンを作りたくなることが多々あるかと思います。

一度だけ押せるボタンはボタンの項目であるinteractableを使うことで作ることができます。

この記事ではinteractableを使った一度だけ押せるボタンの作り方を解説していきます!

作り方の流れ

1.ボタンを作成
2.スクリプトを作成

3.処理の記述
4.On Clickに関数を設定

ボタンを作成

まずはボタンを作成していきましょう。

ボタンを作成するには、

Hierarchyビューから、Create > UI > Buttonで作成できます。

作成するとこのような感じになります。

スクリプトを作成

スクリプトを作成

まずは新規のスクリプトを作成しましょう。

ProjectビューからCreate > C# Scriptで作成できます

作成できると下記のようになります。

ボタンにスクリプトを追加

次に作成したスクリプトをボタンに追加しましょう。

やり方は、スクリプトをボタンにドラッグ&ドロップです。

ドラッグ&ドロップするとこのように追加されます。

処理を記述

スクリプトにボタンをクリックしたらボタンを押せなくなる処理を記述していきましょう。

スクリプトを記述するにはスクリプトをダブルクリックしてください。

interactableでボタンを押せないようにする

ボタンを押せないようにするには、ボタンを押した時にinteractableをfalseにする必要があります。

interactableというのはここの部分のことです。

interactableをfalseにすると、

ボタンが透明になって押せなくなります。

今回はボタンを押した時にinteractableがfalseになるようにスクリプトを作成していきます。

スクリプトでinteractableをfalseにする

スクリプトでinteractableをfalseにするには、

1
using UnityEngine.UI;

を一番上に追加してUIであるButtonを使用できるようにした後に、

1
GetComponent<Button>().interactable = false;

全体のサンプルコードは

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
//ボタンを使えるようにする
using UnityEngine.UI;
 
public class NewBehaviourScript : MonoBehaviour {
 
    // Use this for initialization
    void Start () {
         
    }
     
    // Update is called once per frame
    void Update () {
         
    }
 
    //ボタンを押した時の処理
    public void Click()
    {
        //ボタンを押せないようにする
        GetComponent<Button>().interactable = false;
    }
}

On Clickに関数を設定

スクリプトの中でボタンを押したらボタンを押せなくするClickという関数を作りました。

ボタンのOn Clickに関数を設定してボタンを押したら関数Clickが呼ばれるようにしましょう。

やり方は、まずOn Clickのプラスボタンを押し、

Buttonオブジェクトをドラッグ&ドロップして設定します。

設定したらNo Functionを押し

自分で作成したスクリプト名>Click()を選択します。

設定すると下記の画像のようになります。

これで一度しか押せないボタンが出来上がりました!

実行結果は、

ちゃんとできていますね!

まとめ

この記事ではinteractableを使った、一度だけ押せるButtonの作り方を解説してきました。

少しでも参考になったのなら幸いです!