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);