Unity 매뉴얼: 에셋 데이터베이스 새로 고침
이 문서는 Unity 에셋 데이터베이스 새로 고침 과정에 대해 설명합니다. 또한 사용 방법과 활용 예제를 포함합니다.
에셋 데이터베이스 새로 고치기
에셋 데이터베이스는 다음과 같은 상황에서 새로 고쳐집니다: - Unity 에디터가 포커스를 다시 얻을 때 (자동 새로 고침 활성화 시) - 메뉴에서 Assets > Refresh를 선택할 때 - C#에서 AssetDatabase.Refresh()를 호출할 때
새로 고침 단계
- 변경 사항 감지: 에셋 파일의 변경 사항을 검색하여 소스 에셋 데이터베이스를 업데이트합니다.
- 코드 관련 파일 임포트 및 컴파일:
.dll,.asmdef,.cs파일 등을 가져오고 컴파일합니다. - 도메인 리로드: 스크립트에서 새로 고침이 호출되지 않으면 도메인을 다시 로드합니다.
- 에셋 후처리: 코드 관련 파일에 대한 모든 에셋을 후처리합니다.
- 코드와 무관한 에셋 임포트: 나머지 에셋을 임포트하고 후처리합니다.
- 에셋 핫 리로드: 에셋을 핫 리로드합니다.
상세한 새로 고침 프로세스
에셋 데이터베이스 새로 고침 중에 Unity는 다음과 같은 단계를 반복 수행합니다:
| 단계 | 설명 |
|---|---|
| 변경 사항 검색 | Assets 및 Packages 폴더를 스캔하여 파일의 추가, 수정 및 삭제를 확인합니다. |
| 소스 에셋 데이터베이스 업데이트 | 수정된 파일의 해시를 가져와 GUID를 업데이트하고 삭제된 항목을 제거합니다. |
| 종속성 추적 | 정적 및 동적 종속성을 추적하여 필요 시 에셋을 재임포트합니다. |
| 코드와 관련된 파일 처리 | 코드 관련 파일이 있으면 이를 스크립트 파이프라인으로 전송합니다. |
| 도메인 리로드 | 스크립트 변경 사항이 감지되면 C# 도메인을 다시 로드합니다. |
| 나머지 에셋 처리 | 네이티브 임포터와 스크립트된 임포터를 통해 나머지 에셋을 처리합니다. |
에셋 종속성
| 종속성 유형 | 설명 |
|---|---|
| 정적 종속성 | 임포트 전에 알려진 값, 설정 또는 프로퍼티. 에셋의 이름, 임포터 ID 등이 포함됩니다. |
| 동적 종속성 | 임포트 과정 중에 생성되는 종속성. 예를 들어, 셰이더가 다른 셰이더를 참조할 경우가 있습니다. |
핫 리로드
핫 리로드는 Unity가 프로젝트의 변경 사항을 실시간으로 적용하는 과정입니다. 스크립트를 변경하고 저장하면 Unity는 이를 감지하고 업데이트를 수행합니다.
예제 코드
다음은 C#에서 에셋 데이터베이스를 새로 고치기 위해 호출할 수 있는 코드 예제입니다.
using UnityEditor;
public class AssetRefreshExample
{
[MenuItem("Tools/Refresh Asset Database")]
private static void RefreshAssetDatabase()
{
// 에셋 데이터베이스 새로 고침 호출
AssetDatabase.Refresh();
}
}
이 코드는 Unity 에디터의 메뉴에 "Refresh Asset Database"라는 항목을 추가하여 사용자가 클릭할 때 에셋 데이터베이스를 새로 고치는 기능을 수행합니다.
활용 및 응용
- 프로젝트 관리: 다양한 자산을 체계적으로 관리하기 위해 자주 새로 고침하는 스크립트를 작성할 수 있습니다.
- 버전 관리: 버전 관리 도구에서 파일 변경 시 자동으로 에셋 새로 고침을 수행해 불필요한 충돌을 방지할 수 있습니다.
- 에셋 임포트 자동화: 에셋이 추가될 때마다 자동으로 임포트 과정을 진행하도록 설정할 수 있습니다.
이 문서와 예제를 바탕으로 Unity의 에셋 데이터베이스 새로 고침 기능을 효과적으로 활용하세요.