유니티/유니티 공부

충돌판정

DOlpa_GB 2024. 3. 4. 22:27

물리엔진을 위한 충돌판정 조건은 2가지가 있는데
1. 둘중 하나는 리지드바디 컴포넌트가 있어야한다
2. 두 객체 모두 콜라이더가 있어야한다. 두 조건이 만족할시 충돌판정이 이루어진다

 

충돌에는 두가지의 종류가 있다

1. OnCollision 일반 충돌

-일반적인 콜라이더를 가진 두 게임 오브젝트가 충돌할때 자동실행. 

-충돌한 콜라이더는 서로 통과하지 않고 밀어냄

 

OnCollisionEnter (Collosion collision) : 충돌한 순간

OnCollisionStay  (Collosion collision) : 충돌하는 동안

OnCollisionExit  (Collosion collision) : 충돌한뒤 분리되는 순간

 

2. OnTrigger 트리거 충돌

-두 오브젝트의 콜라이더 중 최소 하나가 트리거 콜라이더라면 자동으로 실행

-충돌시 서로 그대로 통과

 

OnTriggerEnter (Collider other) : 충돌한 순간

OnTriggerStay (Collider other) : 충돌하는 동안

OnTriggerExit (Collider other)  : 충돌한뒤 분리되는 순간

두 오브젝트 중 하나 이상이 Is Trigger에 체크가 되어있어야 한다

 

 private void OnTriggerEnter(Collider other)
    {
        if(other.tag == "Player")
        {
            PlayerControl playerControl = GetComponent<PlayerControl>();
            if(playerControl != null)
            {
                playerControl.Die();
            }
        }
    }

예제 - 부딫힌 오브젝트의 태그가 "Player"라면 PlayerControl 컴포넌트를 변수 playerControl에 집어넣은뒤

Die()함수를 시전한다

반응형