我试图在实例化后将对象作为另一个对象的子对象,但似乎没有做到,(你会发现我的论文作为注释代码)
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;
}
}
}
答案 0 :(得分:4)
您实例化新对象但不分配它。您可以从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;