Unityのボタン(Button)、イベントトリガーの使い方

desk-gddae IT

Unity UIに用意されているボタンの使い方です。とりあえず作成して、クリックした時に何かイベントを起こすところまでやります。

スポンサーリンク

ボタンの作成

unity ボタン button1
ボタンを作るには、ヒエラルキーの+(Create)UIButtonをクリックします。
unity ボタン button2
ボタンが画面上に配置されました。
unity ボタン button3
UI要素は必ずCanvasとセットになるので、もしまだ作っていなければCanvasも一緒に作られているはずです。
もし後で書くスクリプトも試してみたい場合、UIテキストもいっしょに作成して、画面内に配置しておいてください。
キャンバスがデカ過ぎる件についてはこちら参照。
unity ボタン button4
Buttonの子オブジェクトにさらにTextがあり、
unity ボタン button5
Textのヒエラルキーをいじることで、表示する文字やフォント、色などを変更できます。
unity ボタン button13
メインのテキストと差別化するために、ちょっと名前を変えておきます。

ボタンを押すとイベント

コライダーの追加

unity ボタン button6
先に当たり判定を作ります。
ボタンのインスペクター最下部でコンポーネントを追加
unity ボタン button7
2D物理
unity ボタン button8
2Dボックスコライダーをクリックします。

イベントトリガーの追加

UIオブジェクトはイベントトリガーという機能を使うことで何かした時にイベントを起こすことができ、この記事ではテキストをクリックするとイベントが起きるようにしています。
なのでこれの引き写しになるんですが、
numberbox15
ボタンのインスペクターでコンポーネントの追加イベント
numberbox16
イベントトリガーをクリックします。
numberbox17
イベントトリガーコンポーネントが追加されたら、新しいイベントタイプを追加Pointer Clickをクリックします。
numberbox18
を押すとオブジェクトが「なし」となっているので、
unity ボタン button9
自分自身(Button)をヒエラルキーからドラッグしてきてセットします。

スクリプトの設置

//Unity C#
using UnityEngine.UI;

//好きな名前で
public void ButtonClick()
{
GameObject text = GameObject.Find("Text");
text.GetComponent().text = "Changed!";
}
スクリプトを作成し、public voidの後に好きな名前をつけてメソッドを作り、その中に左記のコードを記述します。
やってることは「Text」という名前のオブジェクトを見付けて、そのテキストを変更するという処理です。これのためにさっきボタンのテキストの名前を変更しました。
unity ボタン button10
スクリプトをボタンにアタッチし、
unity ボタン button11
ボタンのイベントトリガーのNo Functionをクリック→作ったクラス名作ったメソッド名をクリックします。これで大体終わり。

環境準備

onclk16
まだ作ってなければ、ヒエラルキーの+(Create)UIEvent Systemを追加します。
unity ボタン button12
それからMain Cameraをクリックし、
onclk18
インスペクターでコンポーネントの追加イベント
onclk19
2D物理レイキャスターをクリックします。

完成品

click changed
以上の手順を踏むと、「クリックするとテキストを変更するボタン」が作成できます。
やりたいことから逆引きするUNITYの使い方まとめ
Unityをやりたいことから学習していけるよう、機能・用途別にまとめたページです。C#の命令別の逆引きは現時点で作っていません。2019の時期に書き始めているので、それより前のバージョンについては言及しません。

コメント