2023. 12. 8. 18:05, Unity
rigidbody2d 에서 Sleeping Mode의 경우, 움직이지 않고 가만히 있게 되는 물체에 물리적인 시스템에 영향을 받지 않게 하는 기능이다. 움직이지 않는 위치에 놓인 개체에 다른 개체와 물리시스템에서 상호작용하게 하기 위해서는 (예를들어 다른 trigger와 ontriggerstay2d 등을 사용할때) 이 Sleeping Mode가 Never Sleep 으로 해주어야 한다.
Unity의 Rigidbody2D
의 sleeping mode는 물리 시스템의 최적화를 위해 사용되는 기능입니다. Sleeping mode는 Rigidbody2D
가 움직이지 않을 때 해당 객체를 "잠자게"하여 계산 부하를 줄이고 성능을 향상시킵니다.
Rigidbody2D
의 sleeping mode에는 다음과 같은 세 가지 모드가 있습니다.
- Never Sleep (절대로 잠들지 않음):
Rigidbody2D
가 언제나 활동 상태로 유지됩니다.- 이 모드에서는
Rigidbody2D
가 움직이든 아니든 항상 물리 시뮬레이션에 참여하게 됩니다. - 최적화를 위해 사용되는 sleeping mode의 이점이 사라지므로 성능에 영향을 미칠 수 있습니다.
Rigidbody2D
를 Never Sleep 모드로 설정하려면 다음과 같이 코드에서 설정할 수 있습니다.
Rigidbody2D rigidbody2D = GetComponent<Rigidbody2D>();
rigidbody2D.sleepMode = RigidbodySleepMode2D.NeverSleep;
그러나 항상 활동 상태로 유지하면서 물리 시뮬레이션에 계속 참여하기 때문에, 성능 이슈를 유발할 수 있습니다. 따라서 Never Sleep
모드를 사용할 때는 해당 선택이 성능에 어떤 영향을 미칠지 주의깊게 고려해야 합니다. 최적화를 위해 다른 sleeping mode를 사용하는 것이 일반적으로 좋습니다.
'Unity' 카테고리의 다른 글
다양한 해상도에 맞게 자동 조절되는 UI 설정 방법. Scale With Screen Size 설정 (0) | 2023.12.09 |
---|---|
FindObjectsOfType<T>() 함수와 FindObjectsByType<T>() 함수의 차이점 (0) | 2023.12.08 |
물리효과 기반 게임에서 순간적으로 의도한 물리효과가 발생하지 않을때 Auto Sync Transforms 효과 체크 고려할것. (0) | 2023.12.08 |
interpolate 옵션에 관하여. 물리력에 의해 개체를 움직일 때 고려할 것 (0) | 2023.12.08 |
터치를 인식해서 bool 값을 변경해서 경우를 나누고자 할 때 사용할만한 방법 (0) | 2023.12.07 |
Comments, Trackbacks