프로젝트 소개

bevy_asset_loader는 Bevy 게임 엔진용 플러그인으로, 게임 에셋 로딩을 단순화하고 체계화합니다. 파생 가능한 `AssetCollection` 트레이트를 도입하여 개발자가 관련 에셋을 구조체로 그룹화할 수 있으며, 완전히 로드되면 Bevy ECS 리소스로 사용할 수 있습니다. 이 플러그인의 주요 기능은 로딩 상태 시스템입니다. 개발자는 에셋 로딩 전용 Bevy 상태를 구성하고, 로드할 에셋 컬렉션을 지정하며, 로딩 완료 후 전환할 다음 상태를 정의할 수 있습니다. 로딩 상태는 다음 상태가 시작되기 전에 모든 에셋 핸들이 완전히 로드되었음을 보장합니다. 지원되는 에셋 필드 유형은 다음과 같습니다: - 파일 경로에서 로드되는 단일 `Handle<T>` 필드(오디오, 이미지 등) - 타일 크기, 열, 행, 패딩을 구성할 수 있는 텍스처 아틀라스 레이아웃 - 사용자 정의 샘플러 구성(필터 모드, 래핑 모드)이 있는 이미지 - 구성 가능한 레이어 수를 가진 배열 텍스처 - 표준 재질(3d 기능 활성화 시) - `Vec<UntypedHandle>` 또는 타입화된 벡터로 로드되는 폴더 - 웹 호환 에셋 컬렉션을 위한 경로 목록 - MapKey 트레이트를 사용하여 HashMap으로 로드되는 컬렉션 두 가지 에셋 구성 모드가 지원됩니다: 컴파일 타임 에셋은 코드에서 직접 derive 매크로 속성을 사용합니다. 경로와 옵션이 하드코딩되어 변경 시 재컴파일이 필요합니다. 동적 에셋은 `path` 대신 `key` 속성을 사용하여 구성이 `.assets.ron` 파일에 저장될 수 있도록 합니다. 이는 에셋 데이터를 코드에서 분리하고, 재컴파일 빈도를 줄이며, 비프로그래머가 에셋을 더 쉽게 관리할 수 있게 합니다. `standard_dynamic_assets` 기능은 동적 에셋을 위한 RON 파일 로딩을 활성화합니다. 추가 기능은 다음과 같습니다: - 로딩 바 지원을 위한 iyes_progress 크레이트와의 진행 상황 추적 통합 - 누락되거나 로드되지 않은 에셋을 우아하게 처리하기 위한 실패 상태 구성 - 에셋 컬렉션이 로드된 후 FromWorld 리소스를 초기화하는 `finally_init_resource` - 로딩 상태 없이 `init_collection`을 통한 직접 초기화 - 더 이상 필요하지 않을 때 AssetCollection 리소스를 제거하여 에셋 언로딩 이 크레이트는 Apache-2.0 및 MIT 이중 라이선스로 제공되며, 여러 Bevy 버전과의 호환성을 유지하고 Bevy의 메인 개발 브랜치를 추적하는 전용 브랜치를 보유하고 있습니다.