2013-10-19 30 views
0

enter image description here製作一個新的實例化的預製作爲一個孩子的遊戲對象存在

我一直在尋找如何使這些水果也移動籃下移動,如果它與它相撞,我已經發現,如果我想執行這個我已經讓這些水果是一個孩子到籃下游戲對象。例如:

banana.transform.parent = basket.transform; 

香蕉和籃子他們每個人型「遊戲對象」的...

但不幸的是,這種方式沒有奏效!我不知道爲什麼?

因此,現在我需要知道如果在運行時如果發生與籃子的碰撞並且在籃子中實例化新的香蕉,是否有可能銷燬香蕉?

我需要嘗試這種愚蠢的做法,因爲我已經嘗試了所有的其他方面並沒有什麼工作:(

+1

'banana.transform.parent = basket.transform;'應該有效。你應該弄清楚爲什麼它不起作用。即使它被抓住了,也許你仍然在向下移動物體? – Calvin

+0

@Calvin:也許你在抓到對象後仍然向下移動對象? ...>是的,我認爲如此,但如何禁用此? – Akari

+0

這取決於:什麼使它首先移動?如果它是連接到香蕉的組件,則可以禁用該組件。 – rutter

回答

1

試試這個擴展方法

public static void FindParentAndAttach(this GameObject go, string parentName) 
{ 
    GameObject memberParent = GameObject.Find(parentName); 

    if(memberParent.Equals(null)) 
    { 
     memberParent = new GameObject(); 
     memberParent.name = parentName; 
    } 

    go.transform.parent = memberParent.transform; 

} 

然後,您可以附加任何遊戲物體到父提供其名稱,如果名稱犯規存在,它在根級別使用該名稱創建一個空的遊戲對象。

gameObject.FindParentAndAttach("Your Parent Name"); 
+0

這會起作用,但它不是一個非常可靠的解決方案,與替代方案相比,它非常慢。我認爲關於這個問題的評論是正確的,提出問題的人應該找出爲什麼設置父母不工作(也許在腳本上發佈更多信息,並在場景中設置轉換) –

0

一樣,你可以嘗試

for(int i = 0 ; i < 4 ; i++) 
{ 
    Transform child =Instantiate(cubePrefab,new Vector3(i * 1.2f,0,0),Quaternion.identity) as Transform; 
    child.parent = Gobj2.GetComponent <Transform>(); 
} 
相關問題