2017-01-09 99 views

回答

5

這樣的事情應該工作:

public GameObject Parent; 
public List<GameObject> Childs; 

public void SetParent(){ 
    foreach(var child in Childs){ 
     child.transform.SetParent(Parent, false); 
    } 
} 

編輯:SetParent第二個參數告訴團結,保持你的對象世界的參數:

worldPositionStays:如果爲true,則修改父親相對位置,縮放和旋轉,以使對象保持不變與之前相同的世界空間位置,旋轉和縮放比例。

+0

我覺得需要指出在SetParent(...)中** false **是至關重要的;)。 如果你關心你的子對象的順序,使用: ** child.transform.SetAsLastSibling(); ** –

+0

@CommodoreYournero你是對的,我做了一個編輯;) –

2

一個很多方面是:

創建一個類來保存子對象的任意數量。

public class Children: List<Child> {} 

然後,將屬性添加到父類類型的

public class Parent 
{ 
    public Children Children { get; set; } 

} 

然後只需添加3子對象的兒童物業

var p = new Parent(); 
p.Children = new Children(); 
p.Children.Add(new Child()); 
p.Children.Add(new Child()); 
p.Children.Add(new Child()); 

訪問子對象就像你會任何其他財產

var child1 = p.Children[0]; 
var child2 = p.Children[1]; 
var child3 = p.Children[2]; 

foreach(var c in p.Children) 
    //.... do something 
相關問題