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 |