在特定位置实例化对象?

时间:2015-12-27 21:49:50

标签: c# unity3d transform instantiation destroy

我只是想让一个方形对象被破坏并在其中实例化一个新对象。现在发生的是第一个对象被销毁,新的对象将出现。但它总是出现在屏幕的中间,而不是在它的父变换中保存脚本。 我已经尝试设置向量,使用代码设置父级和其他一些东西,但没有任何作用。在这里,并提前感谢!

public Transform RaisingBlock;
public GameObject lava1;
public GameObject raisedBlock1;
public GameObject loweredBlock1;

void Start()
{
    StartCoroutine("MyEvent");
}

private IEnumerator MyEvent()
{
    while(true)
    {
        yield return new WaitForSeconds(2f);
        Destroy(this.gameObject); 
        Instantiate(lava1);
    }
}

1 个答案:

答案 0 :(得分:1)

当您销毁gameObject时,它会从活动屏幕中删除。所以它的位置也会丢失。但问题是你应该在实例化lava1对象时说明位置。考虑使用Instantiate的一个重载来完成此任务:

Instantiate(lava1, this.gameObject.transform.position, 
            this.gameObject.transform.rotation);

此外,您的协程会停止,因为您的脚本会随着gameObject一起被销毁。