FC2ブログ
    11 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 01

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】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]

    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)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/978-3f790678
    この記事にトラックバックする(FC2ブログユーザー)