【Unity】超シンプルなボタンスクリプト!ボタンにアタッチするだけ!

SimpleButton.png

 ボタンは制作頻度が高い割に実装がめんどくさいパーツの一つです。🔍Buttonクリック時に呼び出すスクリプトを共通化する方法というエントリーでは複数のボタンを1つのスクリプトで記述する方法を紹介しました。シーン内にいくつもボタンを配置する時には特に重宝する方法でした。

 今回は、逆パターンで「1つのボタンをできるだけシンプルに実装する方法」を紹介します。とりあえず遷移するボタンが配置できればいい!という場合にお使い下さい。

シンプルにボタンを実装する

  1. 実装方法
  2. 記法の解説

実装方法

1) Buttonを配置します。
ヒエラルキー上で右クリック > UI > Button

2) 下記のスクリプトを作ります。
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

[RequireComponent(typeof(Button))]
public class StartButton : MonoBehaviour
{
void Start()
{
var button = GetComponent<button>();
button.onClick.AddListener(() =>
{
SceneManager.LoadScene("Main");
});
}
}
水色マーカー部分はスクリプト名に合わせて変更。
黄色マーカー部分は実際の処理を記入。

このスクリプトをボタンにアタッチするだけで完了です。

記法の解説

上記のサンプルでは『ラムダ式』を渡す記法を使っています。
ラムダ式というのは、名前のついていない「無名関数」を表現する式のことで、その場でパッと定義してサッと使える時短テクニックです。
今回はAddListenerにラムダ式を渡しましたが、普通にメソッドを渡すこともできます。


カジュアルゲームのような「タイトルシーンにボタン1個だけ」みたいなシンプルな作り方では、この記法が有効だと思います。
ただし、1ボタンにつき1スクリプト増えることになりますので、複数のボタンを扱う時は🔍Buttonクリック時に呼び出すスクリプトを共通化する方法で紹介した継承型のスクリプトにした方がよいでしょう。


ゲームのアンテナ