유니티 엔진은 물리를 적용 해주는 엔진이다.
간단히 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 |
충돌이 일어날 때의 반동을 설정 |
Friction Combine |
다른 물리 재질과 충돌할 경우 최종 마찰력을 어떻게 산출할지 정합니다. - Average : 두 값의 평균값을 사용합니다. |
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 |