【ハルシオンブログ】Unityでボタンいっぱいの画面を作ってみた。
こんにちは。坂内っす。
まずはポケガ3の宣伝から。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
Unityでこんな画面作ってみる。

ボタンがいっぱいで作るのめんどいよね!
ボタン1個1個にOnClick設定とか・・・・やってられませんよね。
こんな感じで簡単に作れます。
まずボタンのプレハブを用意。

60x60の白Imageと、その子供にTextを用意しました。
もちろんTMPでもなんでもOK
Textは数字入れたときにちゃんと見えるようにサイズと位置を調整済。
次に、ボタンを並べるところを準備します。
GridLayoutで60x60が並ぶようにしておきました。

あとは、こんなコードを書きます。
[Blog20230515.cs]
これだけ。
1個1個ボタンを設定する必要なんてないんです!
AddListnerで設定してあげればいいですね。
これで作られるオブジェクトはこんな感じ。

ちゃんとボタン押すと押されたNoが画面上部にでますね。
ということで、ボタンいっぱいの画面の作り方でした。
あでゅ~ノシ
まずはポケガ3の宣伝から。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
Unityでこんな画面作ってみる。

ボタンがいっぱいで作るのめんどいよね!
ボタン1個1個にOnClick設定とか・・・・やってられませんよね。
こんな感じで簡単に作れます。
まずボタンのプレハブを用意。

60x60の白Imageと、その子供にTextを用意しました。
もちろんTMPでもなんでもOK
Textは数字入れたときにちゃんと見えるようにサイズと位置を調整済。
次に、ボタンを並べるところを準備します。
GridLayoutで60x60が並ぶようにしておきました。

あとは、こんなコードを書きます。
[Blog20230515.cs]
using UnityEngine;
using UnityEngine.UI;
public class Blog20230515 : MonoBehaviour
{
[SerializeField] Text lblSelectNo;
[SerializeField] Transform trnButton;
[SerializeField] GameObject objItem;
const int countOfButton = 150;
void Start()
{
for (int i = 0; i < countOfButton; i++) {
GameObject obj = Instantiate(objItem, trnButton, false);
obj.name = "btn" + i;
Text text = obj.GetComponentInChildren<Text>();
text.text = i.ToString();
int no = i;
obj.GetComponent<Button>().onClick.AddListener(() => OnClickNo(no));
}
}
void OnClickNo(int i) {
lblSelectNo.text = i.ToString();
}
}
これだけ。
1個1個ボタンを設定する必要なんてないんです!
AddListnerで設定してあげればいいですね。
これで作られるオブジェクトはこんな感じ。

ちゃんとボタン押すと押されたNoが画面上部にでますね。
ということで、ボタンいっぱいの画面の作り方でした。
あでゅ~ノシ
Category: 開発日記(Unity)
| h o m e |