본문 바로가기

TIL(Today I Learned)/오늘 무엇을 배웠을까

TIL(Today I Learned) - 35

1. Singleton과 DontDestroyOnLoad 사용법

  • Singleton 패턴을 사용하여 UIManager와 GameManager 등 여러 매니저를 관리하고, 특정 씬에서만 한 번 초기화되도록 설정.
  • DontDestroyOnLoad는 루트 오브젝트(부모가 없는 오브젝트)에만 적용 가능하다는 점을 확인. 이를 위해 싱글톤 인스턴스 생성 시 항상 루트로 설정되도록 transform.SetParent(null)을 사용.
  • 특정 씬마다 다른 매니저 인스턴스가 필요할 경우, DontDestroyOnLoad를 사용하지 않고 씬 전환 시 새 인스턴스를 생성하는 구조를 활용.

2. UIManager에서 동적 UI 초기화

  • UIManager에서 UIRoot 프리팹을 배열로 관리하여 여러 UI를 동적으로 불러오도록 설정.
  • SceneManager.sceneLoaded 이벤트를 사용하여 씬 전환 시 특정 UI 프리팹을 캔버스 하위에 생성.
  • 캔버스와 EventSystem을 항상 새로 생성하여 UI와 버튼이 정상적으로 작동하도록 구현.

3. Convex Mesh Collider와 Rigidbody의 제한 사항

  • Convex 옵션이 켜진 Mesh Collider는 Rigidbody와 함께 사용 시 물리적 제약이 발생할 수 있다는 점을 학습.
  • 복잡한 형태의 충돌 처리를 위해 Convex Mesh Collider를 사용할 때는 물리 엔진 성능에 영향을 줄 수 있으며, 간단한 콜라이더(Box, Sphere, Capsule 등)를 사용하거나 여러 콜라이더를 조합하는 것이 권장됨.
  • Mesh Collider의 Convex 옵션을 끄면 Rigidbody와 함께 사용할 수 없으므로, 비-볼록 형태는 정적인 충돌 감지에만 적합하다는 점을 인지.

'TIL(Today I Learned) > 오늘 무엇을 배웠을까' 카테고리의 다른 글

TIL(Today I Learned) - 37  (1) 2024.11.12
TIL(Today I Learned) - 36  (0) 2024.11.06
TIL(Today I Learned) - 34  (0) 2024.11.01
TIL(Today I Learned) - 33  (0) 2024.10.31
TIL(Today I Learned) - 32  (0) 2024.10.30