일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자료구조
- 몬스긱
- unityC#
- 코테
- 스톡
- 삼성노트북하판
- 오늘도코드잇
- 자바스크립트
- 기계식키보드
- 코드잇
- LinkedList
- solved.ac
- ADT
- 브론즈
- 어도비
- 추상적 자료형
- 삼성노트북
- 노트북SSD교체
- 코드잇TIL
- JavaScript
- 코테준비
- GMK67
- 시간복잡도
- Unity
- 긱바
- 코딩공부
- M1W
- JS
- 백준
- 노트북램교체
- Today
- Total
SKYLIGHT STUDIO
[Unity] Duplicate identifier 오류 해결 본문
" Duplicate identifier 825126022. File: "Assets/Scenes/DungeonScene.unity". " |
브랜치들을 Merge하니 특이한 오류가 발생했다.
이전까지도 멀쩡하게 작업하던 씬 중 하나가 아예 접근불가 판정을 받고 제대로 열리지가 않던 것.
늘 그렇듯이 이리저리 낑낑대다가 로그에 뜬 다른 오류도 확인한다.
" Error loading the file 'Assets/Scenes/DungeonSceneunity'. File has multiple objects with same identifiers. Probably caused by a merge. " |
에디터 왈, 오브젝트 몇몇이 중복된 식별자를 가지고 있어서 Scene 파일을 로딩하는데 문제가 생겼다는 것.
원래대로라면 에디터에서 수정하는 것이 맞지만, 이번 경우에선 씬 파일 자체가 무력화되었기에 조금 다른 방법을 사용해야 했다.
DungeonScene.unity 파일을 VSC로 열어서 내용을 체크해본다.
YAML 문법으로 이루어져있는 만큼 가독성에는 크게 문제는 없다.
여기서 Ctrl + F를 통해 825126022 식별자를 가진 오브젝트들을 찾는다.
--- !u!1 &825126022 |
여기서 해당 단락을 찾는다.
yaml 문법에 대해 대강 설명을 하자면...
하이픈 3개( --- )는 각 문서의 시작을 나타낸다. 여러 개의 YAML 문서가 하나의 파일에 있을 때, 각 문서의 시작을 표시하는 데 사용된다고 보면 된다.
!u!1는 유니티의 개체를 나타내는 태그.
&825126022는 해당 개체의 고유한 식별자다. 이것이 중복되어 문제가 발생했던 것.
우리 프로젝트의 경우에는 EnemyUI_Camera와 OptionName 두 오브젝트간의 식별자 충돌이었다.
이 중 상대적으로 다른 스크립트와의 연관성이 적은 EnemyUI_Camera의 식별자를 임의로 &825126027로 수정하니 정상적으로 Scene이 구동되는 것을 확인했다. 당연하게도 겹치는 식별자를 사용해선 안된다!
머지할때마다 문제가 터지니 골치 아프네
'Game Development > Unity C#' 카테고리의 다른 글
[Unity] Tilemap (0) | 2024.08.18 |
---|---|
[Unity] Shader (0) | 2024.07.22 |
[Unity C#] 오브젝트에 부여된 NavMeshAgent가 제대로 작동하지 않는 문제 (1) | 2024.04.27 |
[Unreal C++] UFUNCTION (0) | 2024.01.17 |