게임엔진/크로스플랫폼 : HazelEngine
231015 자체 엔진 개발 : Engine, Editor 통합 AssetSystem 설계
mrawesome
2024. 6. 23. 12:32
Engine
- AssetManagerBase
- PackManager
- EditorAssetManager
AssetManagerBase 는 single ton 형태로 진행
- AssetManager::LoadAndInserAsset(); -> Load까지 하고, AssetManager 에 저장
- AssetManager::LoadAsset(); -> File 로 부터 Load 만 하는 함수.
- AssetManager::WriteCache(); -> Load 한 파일을 Cache 형태로 쓰는 함수
원래는 아래와 같은 Hierachy 구조로 가져가려고 했다.
Engine
- AssetManagerBase
- PackManager
- EditorAssetManager
그런데 그러다보면, 예를 들어, LoadAsset 이렇게 하려면
EditorAssetManager 에 LoadAsset 이라는 virtual override 를 둬야 한다.
그런데 나는 EditorAsetManager 의 함수 API 를 완전히 분리하고 싶었다.
현재 엔진팀에서 사용하는 ObjectAddressFinder 와 같이 중간에 wrapper class 를 하나 더 두고 싶었다.