前提
空のGameObjectに複数のPrefabを登録し、そのうちランダムで一つだけ生成するようにしました。
そして、上記のGameObjectをPrefab化してScene上に配置し、配置した場所に生成されるようにしました。
意図としては、GameObjectをFindGameObjectsWithTag
を使用し配列で取得し、foreach
で変数に取り出しながらtransform.position
でscene上に配置した位置に生成するつもりです。
発生している問題
これについて、別々の場所でランダムなPrefabを生成することには成功しましたが、foreach
文の中が要素の二乗回実行されていまいます。
Hierarchyに2つPrefabを配置すると4つのcloneが、3つPrefabを配置すると9つのcloneが生成されていまいました。
なぜこのような処理になってしまうのか、ご教授いただけると幸いです。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class TEXTbox : MonoBehaviour 6{ 7 public GameObject[] TEXTboxs; 8 int number; 9 10 // Start is called before the first frame update 11 void Start() 12 { 13 GameObject[] objects = GameObject.FindGameObjectsWithTag("Textbox"); 14 foreach (GameObject objectbox in objects) 15 { 16 number = Random.Range(0, TEXTboxs.Length); 17 Instantiate(TEXTboxs[number], objectbox.transform.position, Quaternion.identity); 18 } 19 }
補足情報
Unityのバージョンは2018.3.10f1です。
プログラミングは経験がなくUnityについても始めて数週間ほどの初心者で、こちらのサイトを利用するのも初めてなので質問内容で不足している点がありましたらご指摘いただけると幸いです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/05 04:35