Rigibody

이미지

오브젝트의 물리엔진기능을 넣고 싶다면 Rigibody(강제)컴포넌트를 부착하면 된다.

내부적으로 FixedUpdate를 통해서 물리연산을 진행하여 위치와 회전값을 변경한다.

속성 설명
Mass 질량을 나타내는 수치로 실제로 사용하는 무게단위가 아닌 싱대적인 단위로 mass가 1인 오브젝트와 5인 오브젝트는 5배 무겁다고 생각하면 된다. (편의상 1kg라고 생각)
Drag 이동할 때 적용되는 마찰계수(저항)
Anguler Drag 회전할 때 적용되는 마찰계수(저항)
Use Gravity 중력 여부 작용
Is Kinematic 체크하면 물리 시뮬레이션을 이용하여 이동하지 않고 transform으로 이용하여 이동한다. 해당 항목을 체크하면 물리엔진의 영향을 받지않는다.
Interpolate 물리력을 이용한 움직임이 끊어지는 현상이 발생할 때 보간해준다. interpolate: 이전프레임 Extrapolate: 다음 프레임
Collision Detectoin 충돌 감지 옵션으로 아주 빠른 물체는 물리 엔진이 충돌 검출을 놓칠 수 있다. 따라서 좀 더 세밀한 충돌을 검출하기 위한 옵션값이다.
Freeze Postion X, Y, Z축 중에서 해당 축으로의 이동을 막는다.
Freeze Rotation X, Y, Z축 중에서 해당 축으로의 회전을 막는다.

Force

리지드바디 컴포넌트가 제공하는 힘을 가하는 함수는 두가지가 존재한다.

  • void AddForce(Vector3 force)
  • void AddRealativeForce(Vector3 force)
public void AddForce(Vector3 force);
//
// 요약:
//     Adds a torque to the rigidbody relative to its coordinate system.
public void AddRelativeForce(Vector3 force);
//
// 요약:
//     Adds a torque to the rigidbody relative to its coordinate system.

물체에 힘을 가하는 방식은 여러방식으로 줄 수 있지만 사용방식은 알고 가는 것이 좋다.

AddForce의 경우 Vector3타입으로 월드좌표 기준으로 힘이 가해지기 때문에 내부에서 방향설정을 해주어야지 원하는 방향으로 동작한다.

로컬좌표를 사용할려면 AddRelativeForce, transform.forward를 사용해야한다.

rb.AddForce(transform.forward * force);

Physics Manager

이미지

  • Gravity: 입력된 축 방향으로 중력이 작용한다. 디폴트값은 현실의 중력 -9.81
  • Default Material: 두 물체가 충돌했을 때 물리적인 반작용에 대한 속성을 전역적으로 설정한다.
  • Bound Threshold: 충돌한 두 물체의 상대 속도가 이 값보다 작으면 충돌이 발생하지 않는다. (떨림효과를 감소시킴)
  • Layer Collision Matrix: 사용자 정의 레이어간의 충돌 감지 여부를 선택적으로 활성화/ 비활성화 할 수 있다.

태그: ,

카테고리:

업데이트:

댓글남기기