티스토리 뷰

반응형

[ 목표 ]

간단한 공굴리기 게임을 만들면서

오브젝트의 컴포넌트 중 Collider, RigidBody를 살펴봅니다.

그리고 Physics Material, Material도 함께 살펴보겠습니다. 

 

[1] 프로젝트 만들기

 HelloBall 이라는 이름의 프로젝트를 만들어줍니다.

 

SampleScene을 Main으로 이름바꾸고 저장해줍니다. 

 

 

 

[2] 공이 굴러갈 경사면 + 공 추가 

 

3D Object > Cube 를 이용해서 경사면을 만들어줍니다.

3D Object > Sphere를 이용해서 공을 만들어줍니다. 

Main Camera를 선택하면 아래 Game  Preview가 보이는데 (실제 게임에서 보이는 화면)

이걸 참고해서 오브젝트들을 위치시켜줍니다. 

 

 

[3] 공의 Sphere Collider 컴포넌트 살펴보기 for 충돌

 

유니티에서는 오브젝트에 다양한 컴포넌트를 설정할 수 있습니다.

(컴포넌트란 오브젝트의 기능을 의미한다고 생각하면 됩니다)

 

해당 오브젝트를 클릭하고 오른쪽 inspector창을 통해 현재 설정된 component를 보거나 추가할 수 있습니다. 

공을 눌러보면 Sphere에는 처음부터 기본으로 설정된 component가 있는 것을 볼 수 있습니다. 

바로 Sphere Collider..! 

 

유니티에서는 Collider로 오브젝트끼리의 충돌을 판정합니다. 

각각의 오브젝트에 Collider Componet를 설정해두면 자동으로 충돌 판정을 연산합니다.

 

Cube에는 Box Collider, Sphere에는 Sphere에는 Shpere Collider가 기본 설정되어있습니다.

저 체크박스를 풀면 충돌판정이 이루어지지 않습니다.

그럼 공은 경사면과의 충돌을 감지하지 못하니까 공을 아래로 내려가게 해준다면 경사면 위에 있지 못하고 경사면을 뚫고 가겠죠..?!

 

[4] 공에 RigidBody 컴포넌트 추가하기 for 중력

게임을 play해봐도 공이 움직이지 않는데요,

중력의 영향을 받지 않아서 그럽니다..! 

 

Add Component > Physics > RigidBody 를 해줍니다. 

 

 

Rigidbody 컴포넌트는

User Gravity가 기본으로 체크되어있습니다. 

 

 

Sphere Collider와 Rigidbody 컴포넌트 두개가 같이 있으므로

이제 Game을 Play하면 공이 현실세계? 물리세계? 에서 처럼 움직이게 됩니다.

 

 

[5] 공에 Bounce Physical Material 추가 해주기 for 탄성  

 

이번에는 현실세계에서 처럼 공이 바닥에 닿으면 튀어오르도록 탄성을 줘볼게요...! 

이것은 물리적인 재질에 대한 설정이므로

 

Project > + 누르기 > Physical Material을 해줍니다. (또는 Assets에서 오른쪽 마우스 누르고 create 해도 됩니다)

그리고 추가된 Physical Material 이름을 Bounce로 지정해주세요 

 

 

Bounce를 클릭해보면 설정할 수 있는 값들이 보입니다. 

 


- Dynamic Friction: 동적인 상태(움직이고 있는 상태)의 오브젝트의 마찰계수 (0~1사이의 값)

- Static Friction: 정적인 상태(정지상태)의 오브젝트 마찰계수 (0~1사이의 값)

 

마찰계수가

0이면 마찰이 전혀 없어져서 얼음 위를 미끄러지는 것과 같은 상태가 됨

1이면 마찰이 강하게 되어 미끄러지기 힘듬 

 

- Bounciness: 반발계수. 오브젝트가 물리적으로 부딪힐때 반발하는 계수 (0~1사이의 값)

 

반발계수가

0이면 전혀 튀어오르지 않음

1이면 크게 튀어오름

 

- Friction Combine: 두 오브젝트가 물리적으로 부딪힐 때의 마찰계수 계산 방법

- Bounce Combine: 두 개체가 물리적으로 부딪힐 때의 마찰계수 계산 방법

 

Combine에 넣을 수 있는 값들

1. Average: 두 오브젝트의 계수의 평균값이 적용됨

2. Multiply: 두 오브젝트의 계수의 곱이 적용됨

3. Mininum: 두 오브젝트 중 계수가 작은 쪽의 값이 적용됨

4. Maxinum: 두 오브젝트 중 계수가 큰 쪽의 값이 적용됨

 


Bounciness를 0 -> 0.8로 바꿔주겠습니다. 

 

 

Bounce를 Scene의 ball에 마우스로 끌어다놓아서 추가해줍니다.

Sphere Collider의 Material로 들어가게 됩니다. 

 

 

그리고 다시 Play해보면 Bounce가 잘 작동하는 것을 볼 수 있습니다.

 

 

[5] 오브젝트에 Material 추가하기 for 색깔

 

유니티에서 오브젝트의 기본 색은 회색인데 바꿔보겠습니다. 

Material를 오브젝트에 추가해주면 됩니다

 

Project에서 +를 누르고 Material을 추가합니다.

이름은 BallColor로 해줍니다. 

 

 

Albedo를 클릭해주고

색깔을 정합니다. 

 

그리고 Ball Color를 Scene의 Ball 오브젝트로 끌어다놓으면 추가끝-!

 

동일한 방법으로 Slope Color를 만들고

이것을 Scene의 Slope 오브젝트 4개에 각각 마우스로 끌어다놓아서 추가해줍니다. 

 

 

 

 

 

[ 추가 ]

Assets 폴더 구성을 어떻게 하는 것이 좋은건지 모르겠는데

일단 Main Scene을 Scenes 폴더에 끌어넣어줬습니다..!

이 폴더는 원래부터 있던 거여서,, 

 

 

그리고 Scene폴더에서 원래 있던 Sample Scene을 지워주고

Main만 있게 해줬습니당,, 

 

[ Referece ]

초보자를 위한 유니티 입문

반응형
댓글