차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
unity:rigidbody [2018/01/19 02:16] – [상세사항] V_Lunity:rigidbody [2022/10/09 23:50] (현재) – [Hints] V_L
줄 3: 줄 3:
  
 ''Rigidbody''는 사용자의 ''GameObjects''가 물리력의 제어 하에서 동작 할 수 있게 하여 준다. 리지드바디는 사용자의 오브젝트가 현실 세상처럼 움직이게 만들어 힘과 회전력을 적용할 수 있게 하여 준다. GameObject는 중력의 영향을 받고 스크립트를 통해 추가된 힘의 영향력 하에 있거나, NVIDIA PhysX 물리력 엔진을 통하여 다른 오브젝트와 상호작용을 하려면, 반드시 Rigidbody을 포함하여야 함. ''Rigidbody''는 사용자의 ''GameObjects''가 물리력의 제어 하에서 동작 할 수 있게 하여 준다. 리지드바디는 사용자의 오브젝트가 현실 세상처럼 움직이게 만들어 힘과 회전력을 적용할 수 있게 하여 준다. GameObject는 중력의 영향을 받고 스크립트를 통해 추가된 힘의 영향력 하에 있거나, NVIDIA PhysX 물리력 엔진을 통하여 다른 오브젝트와 상호작용을 하려면, 반드시 Rigidbody을 포함하여야 함.
 +
 +상호작용하는 모든 물체가 리지드바디 컴포넌트를 가져야 하는 것은 아니다. 예를 들어 배경으로 사용되는 부수거나 옮길 수 없는 벽이 있다면, 리지드바디 컴포넌트를 넣지 않고 그냥 사용한다. 이렇게 해도 상호작용이 가능하다. 
  
 {{:unity3d:Inspector-Rigidbody.png}}\\ {{:unity3d:Inspector-Rigidbody.png}}\\
줄 10: 줄 12:
  
 |PROPS |PROPS
-|//Mass// |킬로그램으로 표시된 오브젝트의 무게. 다른 리지드바디에 비교하여 100배 이하 혹은 이상 이내에서 무게를 정할 것을 권유함. | +|질량 //Mass// |킬로그램으로 표시된 오브젝트의 무게. 다른 리지드바디에 비교하여 100배 이하 혹은 이상 이내에서 무게를 정할 것을 권유함. | 
-|//Drag// |힘을 받아 동작할 때 오브젝트에 가해지는 공기 저항력의 정도. 0은 저항력이 없는 상태를 말하고, 무한대면 오브젝트는 즉시 멈춰서 버립니다. | +|항력 //Drag// |힘을 받아 동작할 때 오브젝트에 가해지는 공기 저항력의 정도. 0은 저항력이 없는 상태를 말하고, 무한대면 오브젝트는 즉시 멈춰서 버립니다. | 
-|//Angular Drag// |회전력에 의해 회전 시 오브젝트에 가해지는 공기 저항력의 정도. 0은 저항력이 없는 상태를 말하고, 무한대면 오브젝트는 즉시 멈춰서 버립니다. | +|각항력 //Angular Drag// |회전력에 의해 회전 시 오브젝트에 가해지는 공기 저항력의 정도. 0은 저항력이 없는 상태를 말하고, 무한대면 오브젝트는 즉시 멈춰서 버립니다. | 
-|//Use Gravity// |이 속성이 켜지면, 오브젝트는 중력의 영향을 받는다. |+|중력 사용 //Use Gravity// |이 속성이 켜지면, 오브젝트는 중력의 영향을 받는다. |
 |//Is Kinematic// |이 속성이 켜지면, 오브젝트는 물리 엔진에 의해 작동하지 않고, 그의 ''Transform''에 의해서만 조종될 수 있다. 이 속성은 움직이는 플랫폼에서 유용하며 또한 사용자가 ''HingeJoint''가 있는 리지드바디를 동영상화 하고 싶을 때도 유용함. | |//Is Kinematic// |이 속성이 켜지면, 오브젝트는 물리 엔진에 의해 작동하지 않고, 그의 ''Transform''에 의해서만 조종될 수 있다. 이 속성은 움직이는 플랫폼에서 유용하며 또한 사용자가 ''HingeJoint''가 있는 리지드바디를 동영상화 하고 싶을 때도 유용함. |
-|//Interpolate// |만일 사용자의 리지드바디 움직임에 경련이 보이면 이 중 한 옵션을 사용하여 보십시오. |+|보간 //Interpolate// |만일 사용자의 리지드바디 움직임에 경련이 보이면 이 중 한 옵션을 사용하여 보십시오. |
 |>>>//None// |보간법(Interpolation)이 적용되지 않는다. | |>>>//None// |보간법(Interpolation)이 적용되지 않는다. |
 |>>>//Interpolate// |이전 프레임의 Transform을 기반으로 Transform을 부드럽게 수행함. | |>>>//Interpolate// |이전 프레임의 Transform을 기반으로 Transform을 부드럽게 수행함. |
 |>>>//Extrapolate// |다음 프레임의 Transform을 예상하여 Transform을 부드럽게 수행함. | |>>>//Extrapolate// |다음 프레임의 Transform을 예상하여 Transform을 부드럽게 수행함. |
-|//Freeze Rotation// |이 속성이 켜지면, GameObject는 스크립트를 통한 충돌이나 힘에 의해서는 절대 회전하지 않을 것 이다. 오직 //transform.Rotate()//을 용하여 회전할 것 이다.| +|충돌 사 //Collision Detection// |오브젝트가 충돌을 감지하지 못하고 다른 오브젝트를 관통하는 것을 방지하기 위하여 사용된다. |
-|//Collision Detection// |오브젝트가 충돌을 감지하지 못하고 다른 오브젝트를 관통하는 것을 방지하기 위하여 사용된다. |+
 |>>>//Discrete// |장면(scene) 내에서 다른 모든 콜라이더에 대한 신중한(Discreet) 충돌 감지를 사용함. 다른 콜라이더는 이것에 대한 충돌을 시험할 때 Discrete 충돌 감지를 사용할 것 이다. 일반 충돌에 사용 된다.(이것은 디폴트 값이다).| |>>>//Discrete// |장면(scene) 내에서 다른 모든 콜라이더에 대한 신중한(Discreet) 충돌 감지를 사용함. 다른 콜라이더는 이것에 대한 충돌을 시험할 때 Discrete 충돌 감지를 사용할 것 이다. 일반 충돌에 사용 된다.(이것은 디폴트 값이다).|
 |>>>//Continuous// |동적 콜라이더에 (리지드바디를 가지고 있는) 대해서는 신중한(Discrete) 충돌 감지를 사용하고, 정적 메쉬콜라이더(static MeshColliders) (리지드바디가 없음)에 대해서는 지속적인 충돌감지를 사용함. 지속적인 동적(Continuous Dynamic)으로 설정된 리지드바디는 이 리지드바디에 대한 충돌을 테스트 할 때 지속적 충돌 감지를 사용할 것 이다. 다른 리지드바디는 신중한 충돌(Discreet Collision) 감지를 사용할 것 이다. 지속적인 동적(Continuous Dynamic) 리즈드바디가 충돌할 필요가 있는 오브젝트에 사용된다. (이것은 물리적 수행에 있어 커다란 임팩트가 있으므로, 빠른 오브젝트의 충돌에 별 문제가 없다면 Discrete로 남겨두기 바란다).| |>>>//Continuous// |동적 콜라이더에 (리지드바디를 가지고 있는) 대해서는 신중한(Discrete) 충돌 감지를 사용하고, 정적 메쉬콜라이더(static MeshColliders) (리지드바디가 없음)에 대해서는 지속적인 충돌감지를 사용함. 지속적인 동적(Continuous Dynamic)으로 설정된 리지드바디는 이 리지드바디에 대한 충돌을 테스트 할 때 지속적 충돌 감지를 사용할 것 이다. 다른 리지드바디는 신중한 충돌(Discreet Collision) 감지를 사용할 것 이다. 지속적인 동적(Continuous Dynamic) 리즈드바디가 충돌할 필요가 있는 오브젝트에 사용된다. (이것은 물리적 수행에 있어 커다란 임팩트가 있으므로, 빠른 오브젝트의 충돌에 별 문제가 없다면 Discrete로 남겨두기 바란다).|
 |>>>//Continuous Dynamic// |속성이 Continuous로 설정된 오브젝트나 지속적 동적 충돌(Continuous Dynamic Collision)에는 지속적 충돌 감지를 사용함. 이것 또한  (리지드바디가 없는)정적 메쉬콜라이더(static MeshColliders)에 대하여 지속적 충돌 감지를 사용할 것 이다. 다른 콜라이더에 대해서는 신중한(discrete) 충돌 감지를 사용함. 빠르게 움직이는 오브젝트에 사용된다.| |>>>//Continuous Dynamic// |속성이 Continuous로 설정된 오브젝트나 지속적 동적 충돌(Continuous Dynamic Collision)에는 지속적 충돌 감지를 사용함. 이것 또한  (리지드바디가 없는)정적 메쉬콜라이더(static MeshColliders)에 대하여 지속적 충돌 감지를 사용할 것 이다. 다른 콜라이더에 대해서는 신중한(discrete) 충돌 감지를 사용함. 빠르게 움직이는 오브젝트에 사용된다.|
 |//Constraints// |리지드바디의 움직임에 대한 제약 :-| |//Constraints// |리지드바디의 움직임에 대한 제약 :-|
-|>>>//Freeze Position//|월드에서 움직이는 리지드바디를 . X, Y, Z축에서 선택적으로 멈추게 함.| +|위치 고정 >>>//Freeze Position//|월드에서 움직이는 리지드바디를 . X, Y, Z축에서 선택적으로 멈추게 함.| 
-|>>>//Freeze Rotation//|월드에서 회전하는 리지드바디를 . X, Y, Z축에서 선택적으로 멈추게 함.|+|회전 고정 >>>//Freeze Rotation//|월드에서 회전하는 리지드바디를 . X, Y, Z축에서 선택적으로 멈추게 함.|
  
 =====상세사항===== =====상세사항=====
줄 42: 줄 43:
 ====Scripting==== ====Scripting====
  
-사용자의 리지드바디를 제어하기 위하여, 사용자는 주로 스크립트를 사용하여 힘이나 회전력을 가할 것 이다. 이것을 하려면 오브젝트의 리지드바디에 //[[ScriptRef:Rigidbody.AddForce.html|AddForce()]]//와 //[[ScriptRef:Rigidbody.AddTorque.html|AddTorque()]]//를 호출함.사용자가 물리력을 사용할 경우 오브젝트의 Transform을 변경할 수 없다는 것을 기억하십시오.+사용자의 리지드바디를 제어하기 위하여, 사용자는 주로 스크립트를 사용하여 힘이나 회전력을 가할 것 이다. 이것을 하려면 오브젝트의 리지드바디에 //[[ScriptRef:Rigidbody.AddForce.html|AddForce()]]//와 //[[AddTorque|AddTorque()]]//를 호출함.사용자가 물리력을 사용할 경우 오브젝트의 Transform을 변경할 수 없다는 것을 기억하십시오.
  
 ====Animation==== ====Animation====
줄 80: 줄 81:
  
 사용자의 게임이 사용자 오브젝트를 다른 규모로 발생하게 할 필요가 있다면, 사용자 Transform의 스케일 축의 값을 조절하는 것은 허용된다. 단점은 물리 시뮬레이션에서 해당 오브젝트가 발생할 때 더 많은 작업을 해야 한다는 것이며 이것이 사용자 게임의 성능 저하를 가져올 수 있다. 이것이 비로 엄청난 손실은 아니지만 다른 두 옵션으로 사용자의 스케일을 최종 설정하는 것보다는 덜 효율적이다. 또한 일정하지 않은 스케일을 사용하면 육아(Parenting)이 사용되었을 때 원치 않는 행동이 생길 수도 있다는 것을 기억하십시오. 이러한 이유들로 사용자의 모델링 어플리케이션에서 정확한 스케일을 사용하여 오브젝트를 생성하는 것이 항상 최고의 선택이라는 것 이다. 사용자의 게임이 사용자 오브젝트를 다른 규모로 발생하게 할 필요가 있다면, 사용자 Transform의 스케일 축의 값을 조절하는 것은 허용된다. 단점은 물리 시뮬레이션에서 해당 오브젝트가 발생할 때 더 많은 작업을 해야 한다는 것이며 이것이 사용자 게임의 성능 저하를 가져올 수 있다. 이것이 비로 엄청난 손실은 아니지만 다른 두 옵션으로 사용자의 스케일을 최종 설정하는 것보다는 덜 효율적이다. 또한 일정하지 않은 스케일을 사용하면 육아(Parenting)이 사용되었을 때 원치 않는 행동이 생길 수도 있다는 것을 기억하십시오. 이러한 이유들로 사용자의 모델링 어플리케이션에서 정확한 스케일을 사용하여 오브젝트를 생성하는 것이 항상 최고의 선택이라는 것 이다.
 +
 +
 +=====메소드=====
 +
 +
 +  * AddExplosionForce Applies a force to a rigidbody that simulates explosion effects.
 +  * AddForce Adds a force to the Rigidbody.
 +  * AddForceAtPosition Applies force at position. As a result this will apply a torque and force on the object.
 +  * AddRelativeForce Adds a force to the rigidbody relative to its coordinate system.
 +  * AddRelativeTorque Adds a torque to the rigidbody relative to its coordinate system.
 +  * AddTorque Adds a torque to the rigidbody.
 +  * ClosestPointOnBounds The closest point to the bounding box of the attached colliders.
 +  * GetPointVelocity The velocity of the rigidbody at the point worldPoint in global space.
 +  * GetRelativePointVelocity The velocity relative to the rigidbody at the point relativePoint.
 +  * IsSleeping Is the rigidbody sleeping?
 +  * MovePosition Moves the kinematic Rigidbody towards position.
 +  * MoveRotation Rotates the rigidbody to rotation.
 +  * ResetCenterOfMass Reset the center of mass of the rigidbody.
 +  * ResetInertiaTensor Reset the inertia tensor value and rotation.
 +  * SetDensity Sets the mass based on the attached colliders assuming a constant density.
 +  * Sleep Forces a rigidbody to sleep at least one frame.
 +  * SweepTest Tests if a rigidbody would collide with anything, if it was moved through the Scene.
 +  * SweepTestAll Like Rigidbody.SweepTest, but returns all hits.
 +  * WakeUp Forces a rigidbody to wake up.
 +
  
 =====Hints===== =====Hints=====