[Unity][의문] Destroy(this)

이훈·2024년 9월 3일

오브젝트를 파괴하는 코드 Destroy.
스크립트에서 자기자신을 파괴하려고 하는데 가장 먼저 든 생각은
Destroy(this) 였다.
그리고 실행한 결과 오브젝트는 파괴되지 않고 무한히 쌓여갔다.

왜 이런 상황이 발생한 걸까.
언제나 그렇듯 컴퓨터는 정확하게 자신에게 주어진 수행을 이루어냈다.

Destroy(this); //1.
Destroy(this.gameObject); //2.

this는 자기자신,
componet의 구성원으로서 있는 script인 자기자신을 나타내는 것이다.
( this.~~~ 는 스크립트에서 자신이 원하는 값을 가져오는 것이다. )

그렇기에 1.에서 컴퓨터는 내가 생각한대로 오브젝트인 자기자신을 파괴하는 것이 아닌 컴포넌트만을 삭제하고 오브젝트는 그대로 남게되는 것이다.
반면에 2.는 this를 componet로 가지고 있는 게임오브젝트를 찾아서 그것을 직접 삭제해야 하는 것이다.

profile
안녕하세요

0개의 댓글