본문 바로가기

Programming/Unity3D

[앨] 1.CollisionTest

유니티 엔진은 물리를 적용 해주는 엔진이다.

간단히 Rigidbody를 추가해서 사용할수도 있다.

RigidBody란 오브젝트에 물리적인 특성을 부여하는 컴포넌트이다. 외부에서 힘을 주어 이동시키는 오브젝트는 반드시 리지드바디 컴포넌트를 추가해야한다.

 Mass - 질량. 질량이 작을수록 더 빨리 움직이고, 더 멀리 움직인다.

Drag - 저항. 이 값이 크면 속도가 떨어진다.

Angular Drag - 회원 운동 저항. 이 값이 0이면 한없이 굴러간다.

Use Gravity - 중력 사용 여부

Is Kinematic - 관절 운동 처리 여부

Collision Detection - 물체의 연속적인 충돌을 검사하는 방법

오늘 테스트 할거는 같은 Rigidbody를 가지고 있지만 Collider의 피직스메테리얼에 따라 다른값을 보이는걸 해볼생각이다.

 

 

물리 재질(Physic Material)
– 충돌체 표면에 마찰과 반동을 설정하는 애셋
– 충돌체에 물리 재질을 설정하면, 리지드바디와 충돌체가 부딪힐
경우, 설정된 물리 재질에 따라 다양한 상호작용이 일어남

 

Physic Material을 생성하면 Inspector에 이러한 창이 나타난다.

하나하나 설명을 하자면.

 설정 항목

설명 

Dynamic Friction

물체의 면에 작용하는 운동 마찰력
물체가 접촉면에서 움직이고 있을때 받는 마찰력의 크기를 지정합니다.

 Static Friction

물체의 정지 마찰력
물체가 멈춰 있을때 외부의 힘으로부터 안움직이도록 버티는 힘을 의미합니다.

 Bounciness

충돌이 일어날 때의 반동을 설정
0이면 반동이 발생하지 않으며,1이면 에너지의 손실없이 무난히 반동합니다.

Friction Combine

다른 물리 재질과 충돌할 경우 최종 마찰력을 어떻게 산출할지 정합니다.

- Average : 두 값의 평균값을 사용합니다.
- MultiPly  : 두 값읠 곱한 결과를 사용합니다.
- Minimum : 두 값중 최소값을 사용합니다.
- Maximum : 두 값중 최대값을 사용합니다.

Bounce Combine

다른 물리 재질과 충돌할 경우 반동을 어떻게 설정할지 지정합니다. 

Friction Direction2 

특정 방향에 대한 별도의 마찰력을 지정할 때 사용합니다. 여기에는 방향을 지정합니다. 

Dynamic Friction2 

특정 방향에 대해 별도의 운동 마찰력을 지정합니다. 

Static Friction2 

특정 방향에 대해 별도의 정지 마찰력을 지정 합니다. 

이제 간단한 테스트를 해보겠습니다.

큐브를 10개를 만들어서 Dynamic Friction,Static Friction 과 Bounciness를 각각 다르게 주에서 테스트를 하겠습니다.

마찰력 테스트를 위해   동일한 Bounciness 를 주고
Dynamic Friction,Static Friction 수치를 0.2 , 0.4 , 0.6 , 0.8 , 1.0 Phisic Material을 만들어 각각 큐브에 넣어줍니다.

그리고 바운스 테스트를 위해 동일한 Dynamic Friction,Static Friction 수치를 주고 Bounciness값만  0.2 , 0.4 , 0.6 , 0.8 , 1.0 로 넣어줍니다.

 

이렇게 준비를 해주면 끝~~~~
앞에 테그가 붙은건 바운스 체크를 위한 큐브이고 뒤에 테그없이 떠있는건 마찰력을 확인하기 위한 큐브입니다.바닥을 경사지게 만들었습니다.

결과물은......

 

 

Bounciness 는  값에따라 굴러서 내려가는 이동거리를 확인할수있다.
하지만 마찰력에 의한 이동은 확인 불가~
왜일까?? 공부를 더하고 돌아오겠습니다.....ㅜㅜ

좀더 공부하고싶다면 추천: http://game.dongguk.ac.kr/unity3d/chap6.pdf 를 봐도 도움이 됩니다.

 

'Programming > Unity3D' 카테고리의 다른 글

[앨] 5. 간단한 탱크게임 만들기  (0) 2015.01.19
[앨]유니티 단축키  (0) 2015.01.16
[앨] 4.MakeTest  (0) 2015.01.16
[앨] 3.MoveTest  (0) 2015.01.15
[앨] 2.BreakTest  (0) 2015.01.14