Unity/개념정리

[유니티 2022.3.ver] Collider 2D

Hya68 2024. 7. 18. 14:10

목차

  1. 들어가기
  2. Collider 2D란?
  3. Collider 2D의 각 기능
  4. 스크립트에서 Collider 2D 접근 방법

1. 들어가기

아래와 같이 플레이어 오브젝트에 Rigidbody2D 컴포넌트를 추가할 경우 질량이 생겨서 중력에 의해 아래로 떨어집니다.

Rigidbody2D 컴포넌트만 있을 때 게임 실행 화면 / Collider 2D 컴포넌트 추가 후 게임 실행 화면

 

왼쪽처럼 게임 화면에서 플레이어가 사라지는 현상을 막기 위해 Collider 2D 컴포넌트를 추가해줘야 합니다.

단, 플레이어 오브젝트에만 넣으면 안되고 필드 오브젝트에도 넣어주어야

오른쪽처럼 두 오브젝트가 닿았을 때 통과되지 않고 플레이어가 지면 위에 있는 것처럼 나타나게 됩니다.(충돌 처리)


2. Collider 2D란?

- 물리적 충돌을 위한 2D 게임 오브젝트의 모양 정의

- 이름에 2D가 포함되지 않은 콜라이더는 3D 게임 오브젝트에만 사용

- Rigidbody2D와 똑같이 Collider 2D와 Collider 컴포넌트는 동시에 사용할 수 없음

Collider 2D의 종류


3. Collider 2D의 각 기능

Circle Collider 2D / 콜라이더 편집(Edit Collider)

콜라이더 편집
(Edit Collider)
충돌 영역 지정
머티리얼
(Material)
충돌과 관련된 프로퍼티를 결정하는 Physics Material 2D 선택 
트리거
(Is Trigger)
콜라이더 2D가 트리거처럼 작동 (물리 시스템은 콜라이더 2D를 무시)
- 이 옵션을 활성화하면 '강제 전송 레이어', '강제 수신 레이어' 옵션이 사라짐
이펙터에서 사용
(Used by Effector)
연결된 이펙터 2D가 이 콜라이더 2D를 사용
오프셋
(Offset)
콜라이더 2D 지오메트리의 로컬 오프셋 값을 설정
반지름
(Radius)
써클 콜라이더 2D의 반지름을 로컬 공간 단위로 설정
Layer Overrides
레이어 오버라이드 설정
Layer Override Priority 콜라이더 우선순위 지정
Include Layers 이 콜라이더 2D에 포함해야 하는 추가 레이어 선택
Exclude Layers 이 콜라이더 2D에 제외해야 하는 추가 레이어 선택
Force Send Layers 충돌 접촉 시 힘을 보낼 수 있는 레이어 선택
Force Receive Layers 충돌 접촉 시 힘을 받을 수 있는 레이어 선택
Contact Capture Layers 캡쳐할 접촉한 레이어 선택
Callback Layers 충돌을 보고하거나 콜백을 트리거할 레이어 선택
Info 오브젝트의 Circle Collider 2D 정보

 

Box Collider 2D / '합성에 사용됨' 옵션

합성에 사용됨
( Used by Composite )
연결된 Composite Collider 2D에서 사용할 때 설정
- 이 옵션을 활성화하면 '머티리얼', '트리거', '이펙터에서 사용' 옵션이 사라짐
자동 타일링
(Auto Tiling)
 Collider 2D의 모양 자동 설정 여부
크기
(Size)
로컬 공간 단위로 나타난 박스 크기를 설정
엣지 반지름
(Edge Radius)
콜라이더의 가장자리를 중심으로 반지름을 형성하는 값을 설정
=> 코너가 둥글고 볼록한 대형 콜라이더 2D 생성
기본값: 0 (반지름 없음)

 

흔히 사용하는 Circle Collider 2D와 Box Collider 2D만 알아보았고, 나머지는 공식 매뉴얼을 참고해주세요.


4. 스크립트에서 Collider 2D 접근 방법

스크립트에서는 각각의 Collider 2D 클래스를 제공해줍니다.

따라서 클래스 객체 선언 -> 초기화 -> 호출 과정을 통해 충돌 처리를 해주면 됩니다.

스페이스 바를 눌렀을 때 변경되는 BoxCollider 2D 옵션들


참고자료

 

콜라이더 2D - Unity 매뉴얼

Colliders 2D 컴포넌트는 물리적 충돌을 위한 2D 게임 오브젝트의 모양을 정의합니다.보이지 않는 콜라이더는 게임 오브젝트의 메시와 모양이 완전히 똑같을 필요가 없습니다. 대략적인 근사치는

docs.unity3d.com