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