콜라이더(Collider)
- 오브젝트 생성될 때 항상 같이 만들어지는 물체를 부딪치게 하는 개념으로 inspector창에서 설정할 수 있다.
(2D에서는 자동으로 만들어지지 않는다. 따로 Add component 해야 한다.)
- 예를 들어 3D에서 큐브를 하나 만들면 사각형 콜라이더가 생성되는 것이다.
- 기본적으로 콜라이더는 기본 오브젝트와 모양이 같다.
- 편집하여 콜라이더만 크기를 다르게 할 수도 있다.
(inspector 의 맨 아래에서 Add component에서 콜라이더의 원하는 모양을 추가할 수 있다.)
- 만약 콜라이더만 삭제하면 유령처럼 보이기는 하나 물리적으로 부딪히지 않게 된다.
(예를 들어 문이 네모 모양이지만 문 근처에만 가도 문이 열리게 하는 등 콜라이더의 모양을 바꿔 설정할 수 있다.)
- 에셋모양 그대로의 콜라이더를 만들고 싶으면 Mash Collide를 선택하면 된다.
- Is Trigger 체크 확인하기 (콜라이더의 Inspector창에서 선택/해제 할 수 있다. 두 충돌 객체끼리 만나면 밀어내지 않고 통과하는 것으로, 예를 들어 캐릭터가 총에 맞을 때 이걸 선택해줘야 총알이 튕겨져나가지 않는다.)
Is Trigger : 충돌 시 통과 여부 선택
Material : 물리적인 재질
Center : 위치 조절
Radius : 반지름 길이 조절
Height : 높이 길이 조절
리지드바디(Rigidbody)
- 물리적인 중력을 갖게 할 수 있는 기능.
- Inspector의 Add component에서 추가하면 된다.
- Inspector창에서 Rigidbody - Use Gravity 를 통해 중력을 적용할 수 있다.
(마찰이나 무게 등 빼고 중력만 해제하고 싶으면 Use Gravity를 해제하거나 Gravity Scale 을 0으로 만들어주면 된다. 우주공간 게임, 총알 등에서 사용된다.)
- 적용되어있지 않으므로 충돌 등의 마찰이 필요할 때 Rigidbody 2D를 Add component 해주자.
- 리지드바디는 콜라이더를 함께 설정해주어야 한다. 바닥 오프젝트를 만들고 바닥의 콜라이더를 해제하면 바닥을 뚫고 들어가버린다 !
- 중력의 강도를 조절하고 싶으면 Edit – Project Settings – Physics 에서 Gravity의 Y 값을 수정하면 된다.
(기본적으로 Y는 –9.81로 되어있다.)
- 스크립트를 통해서도 중력을 조절할 수 있다. (mass는 무게를 의미하며 마찰에도 영향을 미친다)
- Is Kinematic 체크 확인하기 (두 객체가 충돌했을 때 충돌 시뮬레이션을 하지 않도록 함. 이걸 체크하면 서로 튕겨서 나가지 않는다.)
Mess : 질량(무게)
Drag : 공기저항 Autometic center of
Angular Drag : 회전저항
Automatic Center Of Mass : (단어가 길어서 mess가 짤려있음) 물리 시스템 예측 질량 중심 사용 (좌표로 설정 가능)
Automatic Tensor :물리 시스템 예측 텐서 회전 사용
Use Gravity : 중력 적용 여부
Is Kinematic : 외부 물리 적용 차단 여부
Interpolate - Interpolate : 이전 두 물리 업데이트에서 리지드바디의 포즈와 속도를 사용하여 현재 프레임에서 리지드바디의 포즈를 계산하고 적용. 정확도가 중요한 상황일때 적용.
Interpolate - Extrapolate : 이전 물리 업데이트에서 리지드바디의 포즈와 속도를 사용하고 다음 물리 업데이트에서 리지드바디의 포즈를 예측하여 현재 프레임의 포즈를 계산하고 예측.
Collision Detection - Discrete : 불연속적으로 충돌 검사
Collision Detection - Continuous : 연속적으로 충돌 검사
Collision Detection - Speculative : 추측성 충돌 검사
Contraints : 위치와 각도에 물리 구현 적용 여부 (캡슐같이 생인 오브젝트에 rigidbody를 적용하고 플레이하면 중력때문에 옆으로 쓰러지는데, 이를 방지할 수 있는 설정을 할 수 있다. 여기서 Freeze Rotation X, Y, Z 를 선택하면 캡슐은 쓰러지지 않는다. )
콜라이더(Collider)와 리지드바디(Rigidbody) 의 관계
- 두 오브젝트 모두 Collider 가 있고, 두 오브젝트 중 적어도 한 오브젝트에 Rigidbody 가 있어야 충돌이 가능하다.
- 콜라이더와 리지드바디 사용에 따라 충돌 판정이 Collision(충돌 모드)와 Trigger(통과 모드)로 나뉠 수 있다.
- Collision(충돌 모드)는 오브젝트끼리 충돌하고 물리적인 작용까지 일어나는 것이고,
- Trigger(통과 모드)는 오브젝트끼리 충돌한 것은 맞지만 물리적인 작용이 일어나지 않는다. (오브젝트끼리 충돌은 했지만 - 그냥 통과해버린다.)
- 양쪽 오브젝트에 콜라이더와 리지드바디 모두 적용하면 서로 충돌하는 Collision(충돌 모드) 이고, 양쪽 오브젝트에 콜라이더를 적용하고 한쪽 오브젝트에만 리지드바디를 적용하면 Trigger(통과 모드)이다.
'유니티 C# > 이론' 카테고리의 다른 글
유니티 기초 - 프리팹(Prefeb)이란? (0) | 2023.08.11 |
---|---|
유니티 기초 - 오브젝트에 효과음 넣기 (0) | 2023.08.03 |
유니티 기초 - 화면 가로 세로 고정 및 회전하기 (앱개발용) (2) | 2023.06.04 |
유니티 스마트폰용 제작 팁 (0) | 2023.05.22 |
유니티 기초 - VSync 뜻은? (1) | 2023.05.18 |
댓글