1. 충돌
: 두 물체가 부딪히는 현상
- Collider: 충돌 범위를 나타내는 컴포넌트. 2D게임에서는 항상 2D가 위에 붙은 Collider를 사용
- Rigidbody(2D): 유니티의 물리엔진 컴포넌트. 마찰력, 중력, 탄성 등의 물리엔진을 구현하기 힘들기 때문에 Unity는 쉽게 사용할 수 있도록 제공.
1) Collision 충돌
: 물리적인 연산을 하며 충돌을 감지한다.
- 조건 3가지
-
두 물체 모두 Collider(2D)를 가지고 있다.
-
둘 중 적어도 하나는 Rigidbody(2D)를 가지고 있다.
-
Rigidbody(2D)를 가진 오브젝트가 움직인다.
2) Trigger 충돌
: 물리적 연산을 하지 않고 충돌을 감지할 수 있다. = 두 오브젝트가 접촉했을 때 서로 튕기지 않고 그냥 통과하게 된다.
- 조건 4가지
-
두 물체 모두 Collider(2D)를 가지고 있다.
-
둘 중 적어도 하나는 Rigidbody(2D)를 가지고 있다.
-
둘 중 하나는 IsTrigger옵션이 체크되어 있다.
-
Rigidbody(2D)를 가진 오브젝트가 움직인다.
2. 적용
-
캐릭터 오브젝트 하나와 박스 오브젝트 하나가 있다고 하자.
-
두 오브젝트 모두 Collider(2D)를 가지고 있어야 한다.
-
오브젝트의 인스펙터 창에서 Add Component를 누르고 collider를 검색한다. 여러가지 collider가 뜨는데 원하는 모양을 적용하면 된다.
-
주의: 2D에서는 반드시 뒤에 2D가 붙은 collider를 선택해야 한다.
-
collider를 적용하면 노란색 테두리가 보이는데 그것이 충돌 범위이다.
-
인스펙터 뷰에 보이는 collider 창에서 Edit Collider를 누르면 원하는 충돌범위 사이즈를 조절할 수 있다.(오브젝트의 크기가 달라지지 않는다.)
-
둘 중 적어도 하나는 Rigidbody를 가지고 있어야하기 때문에 중력을 넣고 싶은 오브젝트(캐릭터 오브젝트)에 Rigibody 2D 컴포넌트를 추가한다.(collider를 추가한 방법대로 Add Component에서 검색해서 넣는다. 2D에서는 반드시 2D가 붙은 것을 선택.)
3. Rigidbody 2D
-
Mass: 물체의 질량. 높을 수록 충격량이 달라진다. 높아진다고 해서 더 빨리 떨어지지는 않는다.
-
Linear Drag: 직선 저항. 직선 운동을 할 때 느려지는 정도.(0으로 되어있으면 직선 운동을 할 때 시작 속도 그대로 움직인다.)
-
Angular Drag: 회전 저항. 회전을 할 때 느려지는 속도.(마찬가지로 0이면 회전을 해도 속도가 같음)
-
Gravity Scale: 중력 가속도. 1이면 아래로 떨어지고, -1이면 위로 떨어진다. 0이면 무중력 상태로 공중에서 움직이지 않는다.
-
Constriants: 오브젝트를 고정한다. Freeze Position에서 x를 누르면 x축으로는 물리엔진 영향을 받지 않고 움직이지 않는다. y도 마찬가지. x, y를 모두 누르면 z축으로만, 즉 회전만 한다.
'Programing > UNITY' 카테고리의 다른 글
[Unity] 5.스크립팅 - 기본 개념 (0) | 2020.04.28 |
---|---|
[Unity] Unity(유니티)의 편집 프로그램(Script Editor)을 Visual Studio(비주얼 스튜디오)와 연동하기 (0) | 2020.04.27 |
[Unity] 4. 프리팹과 카메라 (0) | 2020.04.27 |
[Unity] 2. 인터페이스 - 다섯가지 뷰 (0) | 2020.04.25 |
[Unity] 1.프로젝트의 구성과 게임 오브젝트, 컴포넌트 (0) | 2020.04.24 |