前提・実現したいこと
定期的にInstantiateされるGameObjectを取得して、
DropdownのListに追加したい。
C# Unityを用いてRPGゲームを作成しています。
敵キャラクターPrefabが定期的にInstantiateされ、複数の敵キャラクターが存在しています。
どの敵キャラクターを攻撃するか、Dropdownから選択できるようにしたいです。
エラーメッセージは出ていませんが、
最初にInstantiateされた敵キャラクターだけがDropdownに追加され、2体目以降が追加されません。
全ての敵をDropdownの中に入れるにはどうしたらよいでしょうか。
該当のソースコード
public Dropdown dropdown; GameObject enemies;
private void Update()
{
enemies = GameObject.FindGameObjectWithTag("enemy"); if (enemies == null) { return; } if (dropdown) { dropdown.ClearOptions(); List<string> list = new List<string>(); list.Add(enemies.name.ToString()); dropdown.AddOptions(list); dropdown.value = 0; } }
以上です。
何卒、宜しくお願い致します。
Unity の話なら Unity のタグを付けてください。
Unity に興味のある人の興味を引いて回答を得やすくなるし、逆に興味のない閲覧者はスルーできて時間の節約になるというようにお互いにメリットになりますので。
> 全ての敵をDropdownの中に入れるにはどうしたらよいでしょうか。
ストレートに答えるならUpdateメソッドが呼び出される度にDropDownリストをクリアして新しく取得した敵リストを元に生成したリストの中身と入れ替える処理になってるんで、既存の敵リストをどっかに保持しておいて合算してからDropDownリストを入れ替えるか、DropDownリストをクリアせずに新しく取得した敵リストの中身を追加するかの二択。
自分がどう実現したいのか考えて(決めて)、その上でわかんない点を質問文に書いたら良いんじゃないの。
そこまで考えが及ばず質問してるなら、ただの丸投げにしか見えん。