본문 바로가기

게임엔진/크로스플랫폼 : HazelEngine

231015 자체 엔진 개발 : Engine, Editor 통합 AssetSystem 설계


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 를 하나 더 두고 싶었다.