Quick Reference
Unity는 Assets 아래의 file·folder마다 .meta를 만들어 GUID와 import settings를 저장합니다. 참조는 path가 아니라 GUID를 따라가므로, asset을 옮길 때 asset과 .meta를 같이 옮기면 Editor 밖의 이동도 GUID를 보존할 수 있습니다. 한쪽만 이동·삭제하거나 새 .meta를 만들면 참조가 끊길 수 있습니다.
| 상황 | 올바른 처리 | 잘못되면 |
|---|---|---|
| 새 asset commit | asset과 .meta를 함께 commit | 팀원마다 GUID·import 결과가 갈림 |
| Finder/terminal 이동 | file 또는 folder와 대응 .meta를 함께 git mv | Unity가 새 GUID를 만들고 scene/prefab 참조가 끊김 |
| Editor Project 창 이동 | Unity가 asset·meta를 함께 처리 | 일반적으로 가장 안전하고 의도가 명확 |
.meta conflict | 원래 asset의 GUID와 import settings를 확인해 해결 | duplicate GUID, missing reference, 재import churn |
| 반복 설정 표준화 | Preset asset과 Preset Manager default | 수동 setting drift |
Assets/Characters/Player.prefab
Assets/Characters/Player.prefab.metaGUID, import, version control
.meta에는 Unity가 asset을 식별하는 GUID와 importer가 만든 설정이 들어 있습니다. prefab·scene·ScriptableObject 안의 asset reference는 보통 이 GUID를 통해 대상 asset을 찾습니다. 따라서 file name이나 folder path를 바꾸는 것 자체는 GUID가 유지되면 reference가 계속 유효할 수 있지만, .meta를 버리면 Unity가 다른 asset으로 인식합니다.
Editor Project 창에서의 move/rename은 Unity가 대응 meta를 같이 다루므로 기본 선택으로 좋습니다. source control이나 automation에서 외부 이동이 필요할 때도 불가능한 것이 아니라, asset과 meta를 같은 change set으로 움직이고 Unity가 import를 마친 뒤 reference가 유지되는지 확인합니다. folder에도 .meta가 있으므로 folder 이동에는 내부 asset뿐 아니라 folder metadata도 포함됩니다.
.meta를 .gitignore에 넣거나 build 산출물처럼 삭제하지 않습니다. merge conflict를 "meta를 지우고 다시 생성"으로 해결하면 original GUID를 잃을 수 있습니다. conflict 난 asset이 어디에서 참조되는지 확인하고, 의도한 원본의 GUID와 importer settings를 선택한 뒤 Editor에서 reimport·scene/prefab reference를 검증합니다.
Preset과 Preset Manager
Preset은 Component 또는 asset importer의 serialized property 묶음을 asset으로 저장한 것입니다. Texture import, Audio importer, 새로 추가하는 Component의 기본 설정처럼 반복되는 값을 팀 정책으로 만들 때 유용합니다. Edit > Project Settings > Preset Manager에서는 type별 default Preset을 정해 새 Component나 새 asset이 만들어질 때 기본값을 적용할 수 있습니다.
| 선택 | 적용 시점 | 적합한 예 | 한계 |
|---|---|---|---|
| Preset asset을 수동 적용 | 필요한 object/asset을 선택한 때 | 특정 UI Image, AudioSource 설정 | 이미 존재하는 모든 대상이 자동으로 통일되지는 않음 |
| Preset Manager default | 새 Component 추가·새 asset 생성/가져오기 | Texture importer, 새 AudioSource 기본값 | project settings, preferences, 일부 native asset 기본값의 대체가 아님 |
| Prefab default | prefab instance 생성 때 | 게임 object 구성 전체 | importer 정책을 대신하지 않음 |
Preset default를 바꾼 뒤 기존 asset까지 자동으로 재설정된다고 기대하지 않습니다. 적용 대상, 제외 filter, 기존 자산 migration을 별도 작업으로 정하고, 팀에서는 Preset asset도 meta와 함께 version control합니다.
자주 틀리는 부분
| 증상 | 원인 | 수정 |
|---|---|---|
| prefab reference가 Missing이 됨 | asset만 옮기고 meta를 남기거나 삭제 | asset·meta를 함께 복구하고 원래 GUID 확인 |
| 서로 다른 asset이 같은 GUID 오류 | meta를 복사해 duplicate GUID 생성 | 한 asset에만 original meta를 남기고 다른 asset은 정상 reimport |
| 외부 이동은 무조건 금지라고 오해 | 실제 위험은 asset/meta 분리 | Editor 이동 우선, automation은 paired move와 검증 적용 |
| Preset을 바꿨는데 기존 object가 안 바뀜 | default preset은 주로 새 생성 시점 정책 | 명시적 migration 또는 선택 적용 수행 |
| import 결과가 팀원마다 다름 | .meta 또는 project importer policy가 version control 밖 | 관련 meta·Preset·ProjectSettings change set 확인 |
참고 링크
3 sources