p330

충돌 메세지를 발생시키는 것은 리지드바디 컴포넌트이다.

따라서 충돌 이벤트 메서드를 사용하려면 서로 충돌중인 게임 오브젝트 중에서 최소 하나의 게임 오브젝트리지드바디 컴포넌트를 가지고 있어야 한다.

 

 

p331

OnCollision계열 : 일반 충돌

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

충돌한 두 콜라이더는 서로를 통과하지 않고 밀어낸다.

Oncollision계열 메서드가 실행될때는 메서드입력으로 충돌관련정보가 Collision타입으로 들어온다.

OnCollisionEnter(Collision collision) : 충돌한 순간
OnCollisionStay(Collision collision) : 충돌하는동안
OnCollisionExit(Collision collision) : 충돌했다가 분리되는 순간

Collision타입충돌관련정보를 담아두는 단순한 정보컨테이너이다.

따라서 입력으로 들어온 collision을 통해 충돌한 상대방 게임 오브젝트, 충돌지점, 충돌표면의 방향을 알 수 있다.

 

 

OnTrigger : 트리거 충돌

충돌한 두게임 오브젝터의 콜라이더 중 최소 하나가 트리거 콜라이더라면 자동으로 실행된다.

이경우 두게임 오브젝트가 충돌했을때 서로 그대로 통과한다.

onTriggerEnter(Collider other) : 충돌한 순간
onTriggerStay(Collider other) : 충돌하는 동안
onTriggerExit(Collider other) : 충돌했다가 분리되는 순간

OnTrigger 계열의 메서드가 실행될 때는 메서드 입력으로 충돌한 상대방 게임 오브젝트의 콜라이더 컴포넌트(Collider 타입)이 들어온다. 여기서 collision이 아닌 collider 타입을 입력받는 이유는 트리거 충돌에는 상세한 충돌 정보가 필요 없기 때문이다.

트리거 충돌은 일반적인 충돌과 달리 서로를 밀어내지 않고 그대로 통과합니다.

따라서 물리적 반발력이나 정확한 충돌 지점, 충격량 등이 존재하지 않으므

충돌한 상대방 게임 오브젝트(의 콜라이더 컴포넌트)를 곧장 받는다.

 

 

 

p535

일반 충돌이 시작되는 순간 실행되는 OnCollisionEnter()메서드와

충돌한 두 콜라이더가 서로 떨어지는 순간 실행되는 OnCollisionEnter()메서드

 

p554 게임오브젝트가 다른 게임 오브젝트를 물리적으로 밀어내면 안되니 추가한 박스 콜라이더2d컴포넌트는 트리거로 설정한다.

'공부' 카테고리의 다른 글

Mathf.Clamp  (0) 2026.02.26
void 함수, return  (0) 2025.12.29

+ Recent posts