르탄이 빗방울 게임 - 빗방울 충돌
★ 학습 목표 ★
1. 빗방울 Sprite 를 만든다.
2. 빗방울에 중력 기능을 만들어 바닥에 추락시킨다.
3. 빗방울에 충돌 기능을 추가하여 바닥에 빗방울이 닿았을 때, 빗방울은 사라지게 구현한다.
1. 빗방울 만들기
: Hierarchy → GameObject → 2D Object → Circle 만들기 → 파일명 (rain)
2. 빗방울에 중력 기능 만들기
: 위에서 만든 rain 파일의 Inspector 를 보면 Add Component 가 있을 것이다.
Add Component 는 유니티에서 제공하는 여러가지 기능들을 Inspector 에 추가 할 수 있는 기능이다.
Add Component → Physcis 2D → Rigidbody 2D 를 추가
※ RigidBody 가 중력 기능으로 물체를 위에서 아래로 떨어뜨리는 기능이다.
3. 빗방울에 충돌 기능 만들기
: 빗방울에 충돌 기능을 만들어 주는 이유는 빗방울이 바닥에 닿았을 때 사라지도록 만들기 위함이다.
1) 빗방울에 충돌 기능 추가
: 빗방울 (rain 파일) 에 충돌 기능을 추가한다.
Add Component → Physcis 2D → Circle Collider 2D 추가
충돌 기능을 추가하면 Scene 화면에서 빗방울 표면에 초록색 테두리가 추가 된다.초록색 테두리는 충돌 반경을 표시하는 것으로 Radius 값이 클수록 충돌 반경이 넓어진다.Radius 값 설정은 Inspector 에서 Circle Collider 2D 를 확인하면 설정 할 수 있다.
빗방울 충돌 범위 확인 | 빗방울 충돌 범위 값 조정 |
![]() |
![]() |
2) 바닥에 충돌 기능 추가
: 바닥 (ground 파일) 에 충돌 기능을 추가한다.
Add Component → Physicis 2D → Box Collider 2D 추가
Think! 구현 시나리오 생각해보기
1. rain (빗방울) 이 땅에 충돌했을 때 rain 은 사라져야 한다.
2. rain (빗방울) 이 르탄이와 충돌 했을 때 rain 은 사라지면서 점수를 획득해야 한다.
3) ground (바닥) 에 Tag 달아주기
: ground Inspector → Tag 에 Add Tag 로 새 이름을 생성 → 생성한 이름으로 Tag 변경
4) 충돌 시 빗방울 제거 Script 추가
: 먼저 Project 에 rain Script 를 생성해준다.
< 충돌 시 빗방울 제거 코드 >
void OnCollisionEnter2D (Collision2D coll) { if (coll.gameObject.tag == "ground") { Debug.Log("땅이다!"); Destroy(gameObject); } } [설명] void OnCollisionEnter2D (Collision2D coll) : Collision2D coll 과 충돌을 한다. 이 때, Collision2D coll 에는 rain 과 충돌할 상대 변수를 추가한다. if (coll.gameObject.tag == "ground") : 만약 coll 로 충돌하는 gameObject 의 tag 가 ground 라면 Debug.Log("땅이다!"); : Console 창에 "땅이다!" 라는 로그를 저장한다. Destroy(gameObject); : rain 오브젝트를 제거한다. |