활동/내일배움캠프 Unity

[내배캠] TIL : 유니티 *.unity, *.prefab 파일 내부 구조 : YAML

김진우 개발일지 2024. 9. 10. 12:37

Git을 사용하면서 다른 브랜치와 머지할 때 충돌이 나는 경우는 매우 많다. 이때 언리얼은 소스 컨트롤과 연결해 충돌이 난 블루프린트에 어떤 부분이 충돌했는지 GUI로 표시하는 기능이 있고, 에디터 내에서 자체적으로 해결할 수 있다. 블루프린트가 바이너리 파일이라 당연히 지원해야하는 기능이다. 하지만 유니티는 텍스트 기반의 파일을 지원하며 충돌이 났으면 직접 파일을 열어 텍스트를 수정해야 한다. 그러므로 *.unity 파일과 *.prefab 파일의 내부 구조를 필수적으로 알아야만 충돌이 났을 때 해결할 수 있다.

파일의 내부 예시는 아래와 같다.

%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &809173030620372623
GameObject:
  m_ObjectHideFlags: 0
  m_CorrespondingSourceObject: {fileID: 0}
  m_PrefabInstance: {fileID: 0}
  m_PrefabAsset: {fileID: 0}
  serializedVersion: 6
  m_Component:
  - component: {fileID: 8288790660536373333}
  - component: {fileID: 5128412440404470269}
  m_Layer: 0
  m_Name: Front
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1

기본적으로 YAML 1.1 양식이다.

 

https://lejewk.github.io/yaml-syntax/