目次
Destroy()
Destroy()でオブジェクトを動的に削除することができます。
//gameObjectを削除
Destroy(this.gameObject);
少し遅れてオブジェクトを削除する場合は第二引数に秒数を指定します。
//1秒後に gameObjectを削除
Destroy(this.gameObject, 1f);
DestroyImmediate()
Destroy()でオブジェクトを削除しても、実はそのフレーム内であればオブジェクトは残っています。オブジェクトが完全に削除されるのは呼び出したフレームの処理が全て完了したタイミングです。呼び出した瞬間にオブジェクトを削除するようなシビアな処理をしたい場合はDestroyImmediate()を使います。ただ、Unity公式では非推奨なので、できるだけDestroy()を使うようにした方が良さそうです。
//呼び出した瞬間に gameObjectを削除
DestroyImmediate(this.gameObject);
Object-DestroyImmediate - Unity スクリプトリファレンス
Destroys the object obj immediately. You are strongly recommended to use Destroy instead.
リンク