-
충돌판정유니티/유니티 메인 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()함수를 시전한다
'유니티 > 유니티 메인' 카테고리의 다른 글
가까운 적 찾기 (2) 2024.02.28 직렬화를 이용하여 저장 객체 저장 (1) 2024.02.15 json 응용 (0) 2024.02.14 레벨 디자인, Debug.DrawRay, RayCast, RayCastHit (0) 2024.02.07 3D(Terrian, 파티클, Ray 클래스) (1) 2024.02.05