스파르타 게임개발종합반(Unity)/사전캠프 공부 기록

[Unity/2D] 중력, 충돌을 이용하여 빗방울 구현하기 - Rigidbody, Collider, OnCollisionEnter, Destroy

테크러너 2024. 3. 28.

이전편

2024.03.28 - [Unity/2D] - [Unity/2D] 마우스 왼쪽 버튼이 눌러졌을 때 캐릭터 방향 전환하기 - Mouse Input

 

중력 컴포넌트 추가 - Rigidbody

빗방울

플레이 버튼을 누르면 빗방울이 떨어지고 있지 않는데요.

중력이 없어서 그렇습니다.

 

Rigidbody 컴포넌트를 추가해주면 중력이 적용됩니다.

여기서 Rigidbody는 3D에서, Rigidbody 2D는 2D에서 선택해주시면 됩니다.

중력 적용 컴포넌트

 

충돌 컴포넌트 추가 - Collider

중력은 적용했지만 바닥을 뚫고 한 없이 밑으로 떨어질 것입니다.

그러면 바닥과 충돌하는지 알 수 있어야겠죠?

그래서 빗방울 오브젝트에 Circle Collider 컴포넌트를 추가합니다.

충돌 적용 컴포넌트

바닥 오브젝트에는 Box Collider 컴포넌트를 추가합니다.

 

플레이 해보면 아래와 같이 빗방울이 바닥을 뚫지 않고 닿게 됩니다.

 

 

충돌 체크

그럼 이제 빗방울이 바닥에 닿았을 때 멈추지 않고 파괴되도록 해보겠습니다.

그전에 빗방울과 바닥간의 충돌 체크부터 해보겠습니다.

 

우선 Rain 스크립트를 생성합니다.

public class Rain : MonoBehaviour
{
    // 충돌이 일어났을 때 호출되는 이벤트 함수
    private void OnCollisionEnter2D(Collision2D collision)
    {
        Debug.Log("충돌");
    }
}
 

위와 같이 OnCollisionEnter2D(Collision2D collision) 이벤트 함수를 작성합니다.

이 함수는 충돌이 일어났을 때 호출되는 이벤트 함수입니다.

 

이 스크립트를 Rain 오브젝트에 추가하겠습니다.

그럼 이제 Rain과 Ground가 충돌하면 콘솔창에 "충돌" 문자열이 나타나겠죠?

 

충돌 체크가 잘 이루어졌네요.

 

빗방울 파괴하기

    // 충돌이 일어났을 때 호출되는 이벤트 함수
    private void OnCollisionEnter2D(Collision2D collision)
    {
        // 충돌된 게임 오브젝트의 태그가 "Ground"일 때
        if(collision.gameObject.CompareTag("Ground"))
        {
            // 충돌된 게임 오브젝트 파괴(빗방울 파괴)
            Destroy(this.gameObject); // this == 현재 이 스크립트가 부착된 게임 오브젝트
        }
    }

 

collision 변수에는 빗방울이 충돌한 오브젝트의 정보가 담겨있습니다.

그렇다면 collision.gameObject충돌한 오브젝트를 의미하겠죠?

collision.gameObject.CompareTag("Ground");

충돌된 게임 오브젝트의 태그가 "Ground"일 때를 의미합니다.

빗방울과 바닥이 충돌했다는 것입니다.

Ground의 태그명 : Ground

 

이제 충돌한 빗방울이 파괴되어야 하는데요, Destroy(collision.gameObject);를 하면 collision이 바닥이니까 바닥이 파괴되겠죠?

그러니까 빗방울이 파괴되기 위해서는 this.gameObject를 해주어야 합니다.

this는 현재 이 스크립트가 부착된 게임 오브젝트입니다.

즉, 자기 자신을 의미하죠.

 

이제 실행해보면!

 

 

 

 

다음편

2024.03.28 - [Unity/2D] - [Unity/2D] 빗방울 랜덤 생성하기 - Random.Range, renderer.color

 

모바일 화면 크기 설정이 궁금하다면?

2024.03.28 - [Unity/기타] - [Unity] 모바일 크기 설정 / 디스플레이 설정

반응형

댓글