ゲームやアプリでは、プレイヤーに選択させることがたくさんあります。
メニューとして、一覧から選択するような方法もあれば、
一覧ではなく、「▶︎」などで表示を切り替えさせて選択させる方法もあります。
一覧を表示するまでもない選択の場合、これを使えば、スッキリしたUIとなって便利です。
本記事では、そんなUIの作成方法を超簡単に解説します。
実現できること↓
1.UIオブジェクトの準備
図のように、
まずMainCameraで背景をSolid Colorにして、紺色とし、
2つのButtonの作成、その間にText(TMP)を配置しましょう。
基本の骨格は、これでOK。
(あとは、お好みでデザインやアニメーションをつけて応用すればいいでしょう^^)
これらUIをスクリプトによって、機能するようにしていきます。
2.スクリプトで切り替えて選択するUIへ
早速、UI Mangerと名付けたC#スクリプトを作成します。
内容は以下の通り。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class UIManager : MonoBehaviour
{
[SerializeField] TextMeshProUGUI modeTMP;
public int modeNum;
int allModeNum = 3;
// Start is called before the first frame update
void Start()
{
}
public void OnclickNext()
{
modeNum += 1;
if (modeNum >= allModeNum) //大なりイコール
{
modeNum = 0;
}
switch (modeNum)
{
case 0:
modeTMP.text = "MODE 1";
break;
case 1:
modeTMP.text = "MODE 2";
break;
case 2:
modeTMP.text = "MODE 3";
break;
default:
break;
}
}
public void OnclickBack()
{
modeNum -= 1;
if (modeNum < 0)
{
modeNum = allModeNum - 1;
}
switch (modeNum)
{
case 0:
modeTMP.text = "MODE 1";
break;
case 1:
modeTMP.text = "MODE 2";
break;
case 2:
modeTMP.text = "MODE 3";
break;
default:
break;
}
}
}
このスクリプトを、MainCameraにアタッチします。
Inspectorから各種項目を紐付けし、
2つのNextButton、BackButtonのOnClickをそれぞれ設定します。
ここで選択している様子は、
表示されるTextはもちろん、
Inspector上のmodeNum(publicにしたので)の数値
の変化で確認できます。
ゲームを実行して、ボタンを押して変われば実装完了です!
実際のゲーム開発では、
当シーンで選択・設定して、ゲームシーンへ進む構造にします。
ここのmodeNumをPlayerPrefsなどのセーブ機能で保存し、
その値によって、
どんなモードのシーンに遷移するのか、
ゲームのルールが適用されるのか
作っていけば良いでしょう。
ちなみに、PlayerPrefsという保存を使ってキャラクター選択する方法は、
こちらの記事でやり方を解説してるので参考ください。
それでは!
