我已经为可破坏对象编写了一个脚本,但是它在一段时间后不会破坏被破坏的对象?


public GameObject BrokenBottle;
AudioSource audioSource;
void Start()
{
audioSource = GetComponent<AudioSource>();
}
private void OnCollisionEnter(Collision collision)
{
if(collision.relativeVelocity.magnitude > 2)
{

Instantiate(BrokenBottle,transform.position, transform.rotation);
Destroy(this.gameObject);
Destroy(BrokenBottle,1.5f);
audioSource.Play();

}
}

}

我创建了一个脚本,当我打碎一个瓶子时,它会摧毁未打碎的瓶子,然后实例化被摧毁的瓶子。然而,我试图在1.5f后摧毁破碎的瓶子(用GameObject BrokenBottle(,但破碎的瓶子仍然存在。

您正在销毁错误的对象。

实例化将原始对象作为参数,然后返回副本。您应该将返回的对象分配给本地变量,并将其传递给destroy调用:

var brokenBottleInstance = Instantiate(BrokenBottle,transform.position, transform.rotation);
Destroy(brokenBottleInstance, 1.5f);

最新更新