▶
【Unity】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
uGUIで一度だけ押せるButtonを作ろう
機能的に一度だけ押せるボタンを作ってみましょう!
ボタン自体を削除したり、コンポーネントごと無効にするのはナシの方向で!
※使用しているUnityのバージョンは2017.1.1f1です。
[Unity_317×90]
ポイントは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】3Dアクションゲームを作ろう!#7 ステージの作成(Skybox・落下判定)
▶
【Unity】3Dアクションゲームを作ろう!#8 ステージの作成(スイッチ・扉)
▶
【Unity】3Dアクションゲームを作ろう!#9 プレイヤーのHP管理
▶
【初心者Unity】JsonUtilityクラスでJSONを扱う方法
▶
【初心者Unity】スクリプトからコンポーネントを追加する方法
ゲーム制作関連のオススメ連載リンク
とっても手軽なゲーム制作体験!
Unityゲーム開発基礎
実際のリリースゲームを題材にしたハンズオンゲーム制作連載
実践unityゲーム開発