Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Unity開発】uGUIのButtonの使い方(On Click等)

Unity 2021.1.0f1 Personal(【更新】2021年4月)
Unity5.0.0f4 Personal(2015年5月)

 

今回はuGUIのButtonについてです!
uGUIの中でも頻出のUIパーツとなっております。

ボタン素材を作成する

 まずはボタンの素材を作成します。
ネット検索したら下のサイトがヒットしましたので活用させて頂きました。

 

box.aflat.com

 

ノーマル時

f:id:hiyotama:20150511103626g:plain

マウス通過時

f:id:hiyotama:20150511103635g:plain

クリック時

f:id:hiyotama:20150511103642g:plain

選択時

f:id:hiyotama:20210415121422g:plain

無効時

f:id:hiyotama:20210415121509g:plain

 

サイズは縦40px横200pxにしました。

Sprite画像の設定については過去記事をご参照下さい。

hiyotama.hatenablog.com

 

Buttonの作成

それでは次に、ボタンを作ってみましょう。
HierarchyビューからCreate>UI>Buttonを選択して下さい。

 

f:id:hiyotama:20210415121714p:plain


Canvas、Button、Text、EventSystemと4つのオブジェクトが作成されます。

 

f:id:hiyotama:20210415121839p:plain
Hierarchyビュー

 

f:id:hiyotama:20210415121932p:plain

Gameビュー

 

それではButtonのInspectorビューを見ていきましょう。

 

f:id:hiyotama:20210415122041p:plain

Buttonコンポーネント

 

uGUIのポジションやサイズを設定するRect Transformについては過去記事をご参照下さい。

 

hiyotama.hatenablog.com

 

まずはButtonの見た目であるSpriteを設定していきます。

 

Buttonの各状態Sprite設定

ImageコンポーネントのSource ImageでButtonの通常時Spriteを設定できます。
作成したボタンのうち、ノーマル時ボタンを設定します。

 

f:id:hiyotama:20210415122649p:plain

通常時Spriteを設定

 

続いてButtonコンポーネントのTransitionで通常時以外の見た目を設定していきます。

TransitionにはColor Tint(色合い)、Sprite Swap(画像交換)、Animationのモードがあります。
今回は画像切り替えで状態を表現するのでSprite Swapを選択します。

f:id:hiyotama:20210415123349p:plain

Target Graphicに設定したImageコンポーネントが状態変化の対象になります。

それでは各状態のSpriteを設定します。

マウス通過時:Highlighted Sprite
クリック時:Pressed Sprite
選択時:Selected Sprite
無効時:Disabled Sprite(Interactable: false)

 

f:id:hiyotama:20210415123900g:plain

 実行結果

 

Buttonコンポーネントの他要素解説

それでは他の要素についても見ていきます。

Interactableはボタンを有効にするか無効にするかを決めます。

Navigationはキーボードの矢印キーで選択中UIを遷移するルールを決めます。

f:id:hiyotama:20210415125612g:plain

キーボードで選択UIを変更

 

Visualizeをクリックすると遷移ルールをSceneビューで確認できます。

 

f:id:hiyotama:20210415125106p:plain

Visualizeモード

AutomaticはUnity側が遷移を自動設定してくれます。
Horizontalは横移動、Verticalは縦移動を許可します。
Explicitは上下左右のキーを押した時にどのuGUIに遷移するかを個別設定します。

 

 

Buttonクリック時の動作設定

最後に最も大切なButtonをクリックした時の動作設定です。

まずは以下のbuttonScriptを作成し、適当なオブジェクトに取り付けます。
Button自体に取り付けてもOKです。

>|cs|

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ButtonController : MonoBehaviour
{
    public void OnClickButton()
    {
        Debug.Log("ボタンがクリックされました。");
    }
}

||<

 ButtonController.cs

 

「ボタンがクリックされました。」というメッセージを呼び出しているだけのメソッドです。
Buttonで呼び出したいメソッドはpublicにして下さい。

 

次にButtonコンポーネントのOn Clickの設定をしていきます。
まずはOn Clickのプラスボタンを押して新しいイベントを作成して下さい。

 

f:id:hiyotama:20210415130744p:plain
プラスボタンを押してイベント作成

 

続いてNoneと書かれているところをクリックしSelectObjectウインドウを開きます。
続いてSceneタブを選択しScriptを取り付けたオブジェクトを指定して下さい。

 

f:id:hiyotama:20210415130954p:plain

SelectObjectのSceneタブからオブジェクトを選択

 

最後にNo Functionと書かれているところをクリックし、先ほど作成したButtonController.OnClickButtonメソッドを選択して下さい。
指定できない場合は恐らくScriptをつけ忘れたかpublicメソッドにし忘れたかなので、ご確認下さい。

 

f:id:hiyotama:20210415131147p:plain

 OnClickButtonメソッドを選択

 

以上でButtonを押した時にConsoleビューに「ボタンがクリックされました。」というメッセージが表示されます。

 

f:id:hiyotama:20210415131456p:plain

実行

 

以上、uGUIのButton解説でした。

ありがとうございました〜。