유니티에서 리지드바디(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을 제어하는 자세한 내용에 대해 아래 사이트를 참고합니다
'유니티게임개발 > 기초공부' 카테고리의 다른 글
유니티에서 콜라이더 충돌 레이어 관리하기(collision matrix) (0) | 2023.01.21 |
---|---|
유니티(Unity) 자주 사용하는 이벤트 함수 종류(초기화, 업데이트, 충돌, 기타) (0) | 2023.01.19 |
유니티 프로젝트 폴더에서 에셋 검색 필터링 사용하기 (0) | 2023.01.16 |
유니티 Monodevelop 옵션 설정 (0) | 2023.01.12 |
유니티에서 3D모델의 버텍스 컬러 확인하기(vertex color) (0) | 2023.01.12 |