前提・実現したいこと
Unityで、ボタンを動的に生成したいです。
具体的には、for文で回した数だけ生成して、uGUIボタンのテキストを1から順に表示させたいです。
それを、グリッド表示させたいです。
イメージとしては、実行して以下のようにボタンが並ぶ感じです。
➀➁➂
➃⑤⑥
⑦⑧⑨
:
発生している問題・エラーメッセージ
ソースコードではforで5回繰り返しているのですが、なぜか2つしか表示されません。 しかも、数字も反映されません。 下から4行目、3行目を消すと、一応5回分ボタンが生成されるのですが、クローン元のボタンも含まれて6つになってしまいます。
該当のソースコード
C#
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; public class hoge : MonoBehaviour { [SerializeField] GameObject hogehoge; [SerializeField] GameObject canvas; void Start() { for (int i = 0; i < 5; i++ ) { var obj = Instantiate(hogehoge, canvas.transform) as GameObject; var hogebutton = GameObject.Find("Button").GetComponent<Text>(); hogebutton.text = i.ToString(); } }
試したこと
GameObjectにアタッチしたもののインスペクタでhogehogeとcanvasをドラッグで持ってきました。
インスタンス?プレハブ?を使うといいと思うのですが、なかなかうまくいきません...
補足情報(FW/ツールのバージョンなど)
unity 2020
windows
まだ回答がついていません
会員登録して回答してみよう