将新的实例化预制件作为现有GameObject的子项

时间:2013-10-19 15:33:01

标签: unity3d unityscript

enter image description here

我一直在寻找如何使这些水果像篮子运动一样移动,如果它与它相撞,我发现如果我想要这样做,我就让这些水果成为一个孩子篮球比赛对象..例如:

 banana.transform.parent = basket.transform;
每个类型为“GameObject”的香蕉和篮子......

但不幸的是这种方式不起作用!!我不知道为什么?

所以现在我需要知道是否有可能在发生与篮子发生碰撞时摧毁香蕉,并在运行时作为孩子在篮子中实例化新香蕉?!!

我需要尝试这种愚蠢的方式,因为我已经尝试了所有其他方式,没有任何效果:(

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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>();
}