[Unity] 오브젝트의 생성과 파괴

⭐ 오브젝트 생성과 파괴

● 런타임 중에 객체를 생성, 파괴해야하는 경우가 있습니다.

● 생성을 할 때는 Instantiate, 파괴할 때는 Destroy를 이용해 구현할 수 있습니다.

 

Instantiate


● 객체를 생성하기 위한 메서드

● Instantiat(생성할 오브젝트, 위치할 트랜스폼) 형식으로 작성, 위치할 트랜스폼은 생략해도 됩니다.

네모 박스: 생성 코드
오브젝트 생성

 

 

 

Destroy


● 생성된 객체를 파괴하기 위한 메서드

● Destroy(파괴할 오브젝트, 몇초 뒤 파괴할지 시간) 형식으로 작성, 시간은 생략 가능합니다.

 

네모 박스: 파괴 코드
오브젝트 파괴

 

 

 

⭐ 주의해야 할 점

● Instantiate를 이용한 생성과 Destroy를 이용한 파괴는 수행시 비용이 큰 편입니다.

    ○ 따라서 많은 수의 객체를 동시에 생성 및 파괴할 경우 프레임 드랍등의 현상이 발생할 수 있습니다.

    ○ 이를 해결하기 위해 로딩 단계에서 미리 생성을 해두거나 오브젝트 풀링 등의 기법을 사용합니다.

 

오브젝트 풀링 참고: https://shs217shs.tistory.com/83

 

● Destroy는 객체를 바로 파괴하는 것처럼 보이지만 실제로는 다르게 작동합니다.

    ○ Destroy가 실행되면 해당 객체의 파괴를 예약해두고 현재 프레임이 끝날 때 파괴 동작을 수행합니다.

    ○ 따라서 파괴 이후에 해당 오브젝트의 null 체크등 참조 체크를 할 경우 의도와 다른 결과가 나타날 수 있습니다.