Transform.SetParent 行不通?

Transform.SetParent won't work?

我试图在实例化后将一个对象作为另一个对象的子对象,但似乎没有任何作用,(您会发现我的文章是注释代码)

 void Update()
 {  
        if (!isCreated)
        {
                if ( GameObject.Find("blue").GetComponent<Rigidbody2D>().velocity.magnitude == 0 
                &&(Time.time >1))
            {
                Instantiate (indice, new Vector3 (gameObject.transform.localPosition.x + 0.5f ,
                                                  gameObject.transform.localPosition.y + 2,
                                                  gameObject.transform.localPosition.z ),
                                 Quaternion.identity);
                Debug.Log (this.GetComponent<Item>().name.ToString());
                //indice.SetActive(false);
                //indice.transform.SetParent(this.GetComponent<Item>().transform, true);
                indice.transform.SetParent(GameObject.Find(this.name.ToString()).transform, false);
                //indice.transform.parent = gameObject.transform;
                //indice.name = this.transform.name.ToString()+"ItemIndice";
//              GameObject.Find(indice.name).SetActive(false);
                isCreated=true;
                gameObject.GetComponent<Rigidbody2D>().isKinematic = true;
                gameObject.GetComponent<Collider2D>().isTrigger = true;
            } 

        }
    }

您实例化了新对象但没有分配它。您可以从 here.

检查 Instantiate
 Instantiate (indice, new Vector3 (gameObject.transform.localPosition.x + 0.5f ,
                                       gameObject.transform.localPosition.y + 2,
                                       gameObject.transform.localPosition.z ),
                                       Quaternion.identity);

所以你可以使用这个

GameObject newIndice = Instantiate (indice, new Vector3 (gameObject.transform.localPosition.x + 0.5f ,
                                            gameObject.transform.localPosition.y + 2,
                                            gameObject.transform.localPosition.z ),
                                            Quaternion.identity) as GameObject;

然后您可以将父对象设置为newIndice。喜欢

newIndice.transform.parent = gameObject.transform;