Unity 에셋 데이터베이스 가이드
이 문서는 Unity의 에셋 데이터베이스 및 관련 기능에 대한 간단한 설명과 예제를 제공합니다.
에셋 데이터베이스 개요
Unity는 다양한 에셋을 수용하기 위해 파일 포맷을 최적화하여 에셋 데이터베이스에 저장합니다. 에셋 데이터베이스는 다음 두 개의 데이터베이스 파일로 구성됩니다:
- 소스 에셋 데이터베이스: 에셋의 메타 정보를 저장.
- 아티팩트 데이터베이스: 임포트 프로세스의 결과를 저장.
이러한 데이터베이스 파일은 프로젝트의 Library 폴더에 위치합니다.
| 데이터베이스 종류 | 위치 |
|---|---|
| 소스 에셋 데이터베이스 | Library/SourceAssetDB |
| 아티팩트 데이터베이스 | Library/ArtifactDB |
에셋 임포트 및 캐싱
Unity는 자동으로 에셋을 임포트하지만, 스크립트를 통해 에셋을 임포트할 수도 있습니다. 예를 들어, 다음과 같은 방법으로 에셋을 임포트할 수 있습니다.
using UnityEngine;
using UnityEditor;
public class ImportAsset {
[MenuItem ("AssetDatabase/ImportExample")]
static void ImportExample ()
{
AssetDatabase.ImportAsset("Assets/Textures/texture.jpg", ImportAssetOptions.Default);
}
}
에셋 캐싱의 필요성
Unity는 임포트한 에셋 버전을 캐싱하여 작업 시간을 줄입니다. 이러한 캐시는 버전 관리 시스템에서 제외해야 합니다. 팀원들과 협업할 경우 Unity Accelerator를 사용해 LAN 내에서 캐싱된 에셋을 공유할 수 있습니다.
에셋 로드
에셋은 필요할 때만 로드됩니다. 스크립트를 통해 에셋을 로드하는 방법은 다음과 같습니다.
using UnityEngine;
using UnityEditor;
public class ImportAsset {
[MenuItem ("AssetDatabase/LoadAssetExample")]
static void ImportExample ()
{
Texture2D t = AssetDatabase.LoadAssetAtPath("Assets/Textures/texture.jpg", typeof(Texture2D)) as Texture2D;
}
}
에셋 파일 작업
Unity 에셋의 메타데이터를 유지하기 때문에 직접 파일 시스템을 통해 생성, 이동 или 삭제하는 것은 피해야 합니다. 대신, 다음 API를 활용해야 합니다:
AssetDatabase.ContainsAssetDatabase.CreateAssetAssetDatabase.MoveAssetAssetDatabase.DeleteAsset
예제 코드는 다음과 같습니다.
public class AssetDatabaseIOExample {
[MenuItem ("AssetDatabase/FileOperationsExample")]
static void Example ()
{
// 각종 파일 작업 수행
}
}
플랫폼 전환 및 재임포트
Unity는 플랫폼 간 전환 시 에셋을 다시 임포트할 수 있습니다. 플랫폼마다 서로 다른 포맷을 요구할 수 있으며, 이를 통해 데이터를 최적화할 수 있습니다. 새 플랫폼으로 전환 시 에셋이 아직 임포트되지 않았다면 에셋을 다시 임포트합니다.
결론
이 가이드는 Unity의 에셋 데이터베이스와 관련된 기본적인 작업을 이해하는 데 도움이 됩니다. 더욱 자세한 내용은 Unity 공식 문서 및 스크립팅 레퍼런스를 참조하시기 바랍니다.