유니티에서 리지드바디(Rigidbody)의 Sleep, WakeUp, Sleep Threshold

반응형

유니티에서 리지드바디(Rigidbody)의 Sleep, WakeUp, Sleep Threshold

리지드바디(Rigidbody)의 Sleep 및 Wake Up
https://docs.unity3d.com/Manual/RigidbodiesOverview.html
기본적으로 리지드바디(Rigidbody)의 Sleep 및 WakeUp는 자동적으로 발생합니다. 리지드바디가 Sleep Threshold 속성에 설정한 값보다 느린 속도로 움직이는 경우 유니티는 해당 리지드바디를 Sleep 상태로 설정합니다. 물리 시스템에서 Sleep 상태인 리지드바디는 물리 계산에서 제외되며 프레임에서 업데이트되지않아 덜 자원 소모적이게됩니다(Rigidbody optimization) Sleep 상태인 리지드바디가 충돌이나 힘을 받으면 해당 리지드 바디를 Wake up 상태로 설정하고 다시 물리 계산에 포함시킵니다.

 

Sleep Threshold
non - kinematic 리지드바디가 Sleep 상태로 전환되는 글로벌 에너지 임계값을 설정합니다. 리지드바디의 운동 에너지를 질량(mass)으로 나눈 값이 이 값보다 작으면 Sleep 상태 후보가됩니다.

 

 

리지드바디가 리지드바디가 없는 충돌체(물리 시스템이 아닌 트랜스폼, Transform 위치를 업데이트하여 이동하는 정적인 충돌체)의 움직임 및 충돌에 의해 WakeUp 상태가 되지못할수도있습니다(물리 시스템이 정적 충돌체를 감지할수없는 경우)

 

스크립트에서 Rigidbody.Sleep 및 Rigidbody.WakeUp 함수를 사용하여 리지드바디의 Sleep, WakeUp 상태를 제어할수있습니다.
https://docs.unity3d.com/ScriptReference/Rigidbody.Sleep.html
https://docs.unity3d.com/ScriptReference/Rigidbody.WakeUp.html

 

물리 시스템에서 Sleep과 WakeUp을 제어하는 자세한 내용에 대해 아래 사이트를 참고합니다

https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/RigidBodyDynamics.html#sleeping


 

반응형

댓글

Designed by JB FACTORY