수색…


리지드 바디

개요

리지드 바디 구성 요소는 GameObject가 힘에 반응 할 수 있다는 점에서 장면에 물리적 인 존재감 을 부여합니다. GameObject에 직접 힘을가하거나 중력이나 다른 리지드 바디가 타격하는 것과 같은 외부 힘에 반응하도록 할 수 있습니다.


강체 구성 요소 추가

Component> Physics> Rigidbody를 클릭하여 리짓 바디를 추가 할 수 있습니다.


Rigidbody 객체 이동

Rigidbody를 GameObject에 적용한 경우 변형을 조작하는 대신 힘 또는 토크를 사용하여 이동하는 것이 좋습니다. 이 경우 AddForce() 또는 AddTorque() 메서드를 사용하십시오.

// Add a force to the order of myForce in the forward direction of the Transform.
GetComponent<Rigidbody>().AddForce(transform.forward * myForce);

// Add torque about the Y axis to the order of myTurn.
GetComponent<Rigidbody>().AddTorque(transform.up * torque * myTurn);

질량

Rigidbody GameObject의 질량을 변경하여 다른 Rigidbodies 및 힘과 어떻게 반응하는지 영향을 줄 수 있습니다. 더 높은 질량은 GameObject가 다른 물리 기반 GameObjects에 더 많은 영향을 미칠 것이며 더 큰 힘을 요구할 것임을 의미합니다. 질량이 서로 다른 물체는 동일한 드래그 값을 갖는 경우 동일한 속도로 떨어집니다. 코드의 질량을 변경하려면 :

GetComponent<Rigidbody>().mass = 1000;

견인

끌기 값이 높을수록 움직이는 동안 물체가 더 느려집니다. 반대하는 힘처럼 생각하십시오. 코드에서 드래그를 변경하려면 다음을 수행하십시오.

GetComponent<Rigidbody>().drag = 10;

isKinematic

Rigidbody를 Kinematic 으로 표시하면 다른 군대의 영향을받을 수 없지만 다른 GameObject에 영향을 미칠 수 있습니다. 코드를 변경하려면 다음을 수행하십시오.

GetComponent<Rigidbody>().isKinematic = true;

제약 조건

또한 각 축에 구속 조건을 추가하여 Rigidbody의 위치 또는 회전을 고정시킬 수 있습니다. 기본값은 RigidbodyConstraints.None 이며 여기에 나와 있습니다.

여기에 이미지 설명을 입력하십시오.

코드의 제약 조건의 예 :

// Freeze rotation on all axes.
GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeRotation 

// Freeze position on all axes.
GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezePosition 

// Freeze rotation and motion an all axes.
GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll 

비트 OR 연산자 | 다음과 같이 여러 제약 조건을 결합합니다.

// Allow rotation on X and Y axes and motion on Y and Z axes.
GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezePositionZ | 
    RigidbodyConstraints.FreezeRotationX;

충돌

리지드 바디가있는 GameObject에서 충돌에 반응하기를 원한다면 콜리더를 추가해야합니다. 충돌 자의 유형은 다음과 같습니다.

  • 상자 충돌 자
  • 구형 충돌기
  • 캡슐 콜 라이더
  • 휠 충돌 장치
  • 메쉬 충돌기

GameObject에 둘 이상의 충돌자를 적용하면이를 복합 충돌 자라고 부릅니다.

OnTriggerEnter() , OnTriggerStay()OnTriggerExit() 메서드를 사용하려면 충돌자를 트리거 로 만들 수 있습니다. 트리거 콜리더는 물리적 인 충돌에 반응하지 않으며, 다른 GameObject는 단순히 그것을 통과합니다. 그것들은 다른 GameObject가 특정 영역에 있는지 여부를 감지하는데 유용합니다. 예를 들어, 아이템을 수집 할 때, 우리는 그것을 실행할 수 있기를 원할 것입니다.

엄밀한 몸의 중력

RigidBodyuseGravity 속성은 중력에 영향을 주는지 여부를 제어합니다. false 설정하면 RigidBody 는 외부 공간에서처럼 작동합니다 (일정한 힘이 어떤 방향으로 적용되지 않습니다).

GetComponent<RigidBody>().useGravity = false;

중력에 의해 제어되는 모션을 제외한 RigidBody 다른 모든 속성이 필요한 상황에서 매우 유용합니다.

활성화되면 RigidBody 는 중력에 의해 영향을받습니다. 물리력 설정에서 Physics Settings .

여기에 이미지 설명을 입력하십시오.

중력은 초당 세계 제곱 수로 정의되며 여기에 3 차원 벡터로 입력됩니다. 즉, 예제 이미지의 설정을 사용하면 useGravity 속성이 True 설정된 모든 RigidBodies 가 초당 9.81 월드 유닛 (유니티 좌표계 지점에서 음의 y 값 아래로 등) 아래쪽 방향으로 초당.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow