유니티 를 협업하다보면 장면 파일 처럼
확장자가 unity 로 끝나는 파일들이 충돌나기도 한다.
개발자로서 일반 스크립트 파일만 충돌을 해결해왔는데
또잉 이건 뭐지?
당황 스러운 충돌 코드
Scene.unity 파일은 바이너리 형식으로 되어있다.
그렇기 때문에 직접 수정하는건 사실 권장되진 않지만
아주 작은 충돌의 경우에는 해결 가능하다
충돌난 파일의 팀원과 어떤 변경사항을 유지할지 얘기 해본 후 수정에 들어가자
파일을 잘보면
--- !u!1 &1288181243 이런식으로
게임오브젝트, 캔버스 렌더러 등의 컴포넌트 들로 구분 되어있다.
MonoBehaviour: 로 되어있는건 스크립트 컴포넌트 일것이다.
그리고 그안에
m_ 로 시작하는 컴포넌트 속성들이 보인다.
만약 속성이 충돌이 난 경우라면 좀 까다로워 진다.
-> 유니티 에디터를 이용해 직접 어떤 값이 좋을지 확인 해본 후 변경을 적용하면 된다.
m_Name: 속성을 통해 게임오브젝트의 이름을 확인할 수 있다.
더더 까다로운 부분은 식별자가 충돌난 경우
-> 이경우에는 병합을 하지 않는걸 더 추천하긴 한다
!u!1은 GameObject, !u!4는 Transform을 나타낸다고 한다
& 뒤에 부분은 고유한 아이디 식별자 이다
해당 식별자를 이용해 오브젝트간의 관계가 형성되어서 꼬이면 안된다
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 443031901}
이런식으로 다른 개체에서
m_GameObject: {fileID: 443031901} 식별자를 사용중이다
그래서 해당 참조중인 개체의 상단에 있는 게임오브젝트의 식별자가 일치하는쪽으로 적용해야한다
이렇게 까다롭기 때문에 병합은 진짜 조심스럽게 진행해야 한다
조금이라도 잘못 수정하면 해당 오브젝트가 고장나기 때문에...
주의가 필요하다
+++
그래서 최근 사용하는 가장 좋은 방법은
충돌이 예상되는 바이너리 파일들을
예) Scene파일 , 폰트 asset SDF파일 등
최대한 분리 하는것이다.
폰트asset 파일의 경우 팀원 간에 개별로 만들어 사용하거나 한 사람만 작업시 사용하도록 하여 파일 깨짐을 줄일 수 있었고,
씬 파일의 경우 작업자가 작업 완료 후 원본 씬 변경없이 사본을 만들어서 깃에 push 하면 해당 사본 씬에서 변경된 게임오브젝트 구조물만 복사 하여 원본 Scene 에 직접 합치니
훨씬 깔끔하고 수월해졌다.
*-도움이 되었다면 공감을 눌러주세요-*
< IT연구소 쿠키 랩 />
'Unity게임' 카테고리의 다른 글
[Unity] 비밀번호 input 한글 오류 해결 (0) | 2023.12.15 |
---|---|
[C#] Enum 변수의 초기상태와 첫번째 값간의 구별 (2) | 2023.11.25 |
유니티 무료 2D맵 에디터 : 게임 맵을 쉽게 만드는 툴 소개 (0) | 2023.06.14 |
유니티 유용한 무료 자원(애셋) 을 찾을 수 있는 곳! (0) | 2023.06.14 |
유니티 게임엔진 프로그램 다운로드 (0) | 2022.01.07 |
댓글