반응형

01 Destroy(Component);

Destroy();

오브젝트 삭제 함수로 메개변수에 입력되어 있는 오브젝트 or 컴포넌트를 삭제한다.

위 코드를 실행하기 위해 DestroySample이라는 빈 오브젝트를 생성하고, 스크립트를 컴포넌트로 적용시킨다.

그리고 Player Object 변수에 Player 게임오브젝트를 등록한다.

실행 전
실행 후

게임을 실행시키면 Player Controller 컴포넌트가 삭제되는 것을 확인할 수 있다.

 

 

02 Destroy(GameObject);

게임오브젝트를 Destroy 함수에 매개변수로 등록하면 게임오브젝트가 삭제된다.

실행 전
실행 후

게임을 실행하면 Player 오브젝트 자체가 사라진 것을 확인할 수 있다.

 

Destroy 함수는 위와 같이 두 번째 매개변수에 등록된 시간 후에 오브젝트를 삭제하도록 명령할 수 있다.

 

 

 

04 위치 기반 오브젝트 삭제

Destroy를 활용해 오브젝트가 특정 위치를 벗어났을 때 삭제하는 예제

스크립트를 생성하고, 위와 같이 코드를 작성한다.

조건문을 작성하여 오브젝트 x 또는 y의 위치가 정해진 범위를 벗어났을 때 Destroy를 이용해 본인 오브젝트를 삭제한다.

이 스크립트를 Box, Circle, Triangle 프리팹에 적용한다.

 

DestroySample 오브젝트를 잠시 끄고 실행시킨다.

Box, Circle, Triangle 프리팹을 바탕으로 만들어진 PositonAutoDestroy를 가진 오브젝트는 모두 화면 밖으로 나갔을 때 삭제되는 것을 확인할 수 있다.

플레이어는 PositonAutoDestroy를 가지고 있지 않기 때문에 화면 밖으로 나가도 삭제되지 않는다.

 

 

 

05 충돌 기반 오브젝트 삭제

먼저 장애물로 사용할 Wall 오브젝트를 하나 만들고, 적당한 위치와 크기를 지정한다.

이 오브젝트는 충돌이 가능하기 때문에 RigidBody2D와 Gravity Scale을 0으로 설정한다.

Box Collider 2D도 추가하고 is Trigger도 체크한다.

 

이 Wall에 Player가 총알을 쏴서 맞출 것이기 때문에 Circle 프리팹에도 Box Collider 2D를 넣는다.

스크립트를 Wall 오브젝트에 등록하고 실행한 결과이다.

총알과 벽이 부딪혔을 때 아주 잠깐 벽의 색상이 바뀌고, 벽에 부딪친 총알의 오브젝트가 삭제되는 것을 확인할 수 있다.

반응형