2017-09-07 22 views
1
for (int i = 0; i < numberOfObjects; i++) 
     {    
      if (squadMembers.Length == 0) 
       go = Instantiate(squadMemeber); 
      Vector3 pos = FormationSquarePositionCalculation(i); 
      go.position = new Vector3(transform.position.x + pos.x, 0, transform.position.y + pos.y); 
      go.Rotate(new Vector3(0, -90, 0)); 
      go.tag = "Squad Member"; 
      go.transform.parent = gameObject.transform; 
      newpos.Add(go.transform.position); 
      qua.Add(go.rotation); 
     } 

すべての子にタグ名「Squad Member」を付けますが、次回は、私が使用しているオブジェクトもタグ付けします。だから、タグで親オブジェクトの子オブジェクトを見つける方法はありますか?

例えば20 numberOfObjectsとするとき、私はやっているプログラム内の他のどこかに存在する場合:

squadMembers = GameObject.FindGameObjectsWithTag("Squad Member"); 

今squadMembersは21個のオブジェクトが含まれますが。しかし私はそれが20を含むようにしたい。20人の子供。

答えて

2

親ゲームオブジェクトのすべての子をループし、探しているタグが子どもにあるかどうかを確認できます。そうであれば、その子のゲームオブジェクトをリストに追加します。リストには20人の子供が含まれます。

public Gameobject parent; 
private List<Gameobject> squadlist = new List<Gameobject>(); 

    void Start() 
    { 
      foreach (Transform child in parent.transform) 
      { 
       if (child.tag == "Squad Member") 
        squadlist.Add(child.gameObject); 
      } 
    } 
関連する問題