이 글은 "따라하면서 배우는 고박사의 유니티 기초" 강의를 정리한 글이다.
Destroy(Component)
Destroy() 함수는 오브젝트를 삭제하는 함수로 입력되어 있는 오브젝트나 컴포넌트를 삭제한다.
게임이 진행하는 도중 영구적으로 사라져야 하는 아이템 오브젝트와 같은 것을 Destroy 함수를 이용해 삭제하면 된다.
빈 오브젝트를 생성해서 위의 DestroyScript 코드를 컴포넌트에 추가하고 Player Object 변수에 플레이어를 등록한다. 실행하면 플레이어 컴포넌트의 controller가 사라진 것을 확인할 수 있다.
Destroy(GameObject)
Destroy 함수의 매개변수에 게임 오브젝트를 등록하게 되면 게임 오브젝트가 삭제되는 것을 확인할 수 있다.
Destroy(GameObject, time)
이전 예제처럼 바로 삭제도 가능하지만 두 번째 매개변수에 설정한 시간만큼 흐른 뒤에 삭제도 가능하다.
플레이어가 2초 뒤에 사라지는 것을 확인할 수 있다.
특정 범위를 벗어났을 때 오브젝트 삭제
오브젝트가 특정 위치에 벗어났을 때 오브젝트가 삭제되는 예제를 진행할 것이다.
위의 스크립트를 각각 box, circle, triangle 에 컴포넌트로 적용한다.이후 실행하면 화면 밖으로 벗어나면 사라지는 것을 확인할 수 있다.
특정 오브젝트와 충돌했을 때 오브젝트 삭제
특정 오브젝트와 충돌했을 때, 오브젝트를 삭제하는 예제를 진행하겠다.
장애물로 사용할 벽 오브젝트를 새로 생성한다. 이 오브젝트는 충돌이 가능하기 때문에 Rigidbody 2D의 gravity scale을 0으로 설정하고, Box Collider 2D 추가해 is trigger을 설정해준다.
플레이어가 총알을 쏴서 맞출 것이기에 circle Prefab에도 Box Collider 2D를 추가한다.
스크립트는 다음과 같이 작성하였고 wall 오브젝트에 추가한다. 총알을 맞으면 벽이 빨갛게 변한다.
'자기개발 > Unity' 카테고리의 다른 글
[유니티기초] 2D sprite/ animation (0) | 2024.04.29 |
---|---|
[유니티기초] 플랫폼 게임에서의 플레이어 이동, 점프 구현 (0) | 2024.04.29 |
[유니티 기초] 인스턴스 활용 예제 (0) | 2024.04.16 |
[유니티 기초] 게임오브젝트 생성 함수 (0) | 2024.04.16 |
[유니티 기초] 게임오브젝트 물리와 충돌 (0) | 2024.04.10 |