이번 강좌는 실제와 같은 물체를 만드는 강좌다.
여기서 실제와 같다는 것은 (현재 강좌를 3D 환경에서 진행하기에)재질도 포함되어 있지만 개인적으로 중력이나 충돌 같은 것이 조금 더 중요하다고 생각한다.(2D 환경에서도 아마 똑같이 적용되리라 추측하기에)
유니티는 컴포넌트 기반 게임엔진이다.
물체 필수 요소
- Mesh
- Material
- Collider
- Rigidbody
중력 적용하기
오브젝트 선택 후 오른쪽 Inspector에서 'Add Component - Rigidbody(2D의 경우 Rigidbody 2D)'를 눌러 컴포넌트를 추가한다.
Rigidbody : 물리 효과(중력)를 받기 위한 컴포넌트
- Mass : 질량(kg)
- Drag : 공기 저항(0 : 없음, 무한대 : 즉시 정지)
- Angular Drag : 회전 공기저항(0 : 없음)
- Use Gravity : 중력 영향 유무
- Is Kinematic : 물리엔진 영향 유무(체크할 경우 Transform으로만 움직임)
- Interpolate : 움직임 보정
- None : 사용 안 함
- Interpolate : 이전 프레임 기반으로 부드럽게 보정함
- Extrapolate : 다음 프레임 추정으로 부드럽게 보정함
- Collision Detection : 충돌 감지 방식
- Discrete : 모든 Collider와 충돌을 검사하여 감지함
- Continuous : 고정된 것과의 충돌을 인식할 때 사용함
- Continuous Dynamic : 위 두 방식을 번갈아 사용함
- Continuous Speculative : 위 방식보다 성능적으로 가볍지만, 오인식이 있을 수 있음
- Constraints : 움직임 제한
충돌 영역 제한
Collider : 물리 효과(충돌)를 받기 위한 컴포넌트
충돌 기준은 Collider를 따름
Is Trigger : 트리거 활성화(충돌을 감지하지만, 물리 효과는 받지 않음)
재질 만들기
Material : 오브젝트 표면의 재질을 결정하는 컴포넌트
Project에서 'Create - Material'를 눌러 생성할 수 있다.
속성
- Albedo : 재질(색)
- Metalic : 금속 재질 수치
- Smoothness : 빛 반사 수치
- Texture : 재질에 들어가는 이미지
- Tiling : 텍스쳐 반복 타일 개수
- Emission : 텍스쳐 밝기 조절
물리 재질 만들기
Physic Material : 탄성과 마찰을 다루는 물리적인 재질
Project에서 'Create - Physic Material'를 눌러 생성할 수 있다.
오브젝트에 추가하게 되면 Inspector에서 'Sphere Collider - Material'에 추가된다.
속성
- Dynamic Friction : 마찰력(동적)
- Static Friction : 마찰력(정적)
- Bounciness : 탄성력
- Friction/Bounciness Combine : 다음 마찰/탄성을 계산하는 방식
- Average : 평균
- Minimum : 최솟값
- Maximum : 최댓값
- Multiply : 곱
3D에서 설명하긴 하지만 2D에서도 비슷하거나 똑같을 것으로 추정된다.