유니티 5에서는 씬 병합(scene merging) 기능을 제공합니다. 씬 병합에 대한 배경 설명은 아래 블로그 내용을 꼭 읽어보시기 바랍니다.

2015/02/27 - [Unity/Unity 5] - 유니티5: 제작 워크플로우 개선

  

 결론적으로 유니티에서의  병합작업은 두 단계로 이루어집니다. 먼저 자체적으로 엔진에서 내부에 내장되어 있는 병합 툴을 통해 단순 텍스트 비교가 아닌 시맨틱을 통해서 오브젝트에 기반한 병합 을 만들어내면서 최대한 자연스러운 씬 병합을 만들어 냅니다. 그 이후에 외부 병합 툴을 이용하여 사용자에 의한 일반적인 병합 작업을 한번 더 거침으로써 병합 작업이 마무리됩니다.


 그러면 실제 씬 병합은 어떤 방식으로 할 수 있는지를 살펴보겠습니다. 먼저 아래 그림과 같이 a1, a2 이렇게 두 개의 씬이 존재하며 해당 두 씬을 병합하길 원한다고 가정합니다. 


 먼저 씬을 병합하기 전에 체크해야 할 환경설정이 있습니다.


 1) [Edit]->[Project Settings]->[Editor]에서 Asset Serialization 모드를 Text 유형으로 설정되어 있는지 확인합니다. 바이너리일 경우에는 에러 메시지를 접할 수 있으니 유의하세요.


 2) 앞서 언급한 것처럼 유니티는 마무리 단계에서 외부 병합 툴을 활용합니다. 외부 병합 툴이 설치되어 있다면 자동으로 검색하여 해당 툴을 사용할 것이지만, 어떠한 병합 툴도 없다면 아래와 같은 에러메시지를 보게 될 것입니다. 따라서 외부 병합 툴을 꼭 설치하시기 바랍니다(SourceGear DiffMerge, TkDiff, P4Mearge, TotoiseMerge, WinMerge, ...). 또한 병합 툴은 [Preference]에서 원하는 툴을 직접 설정하실 수 있습니다. 

 


 그럼 이제 씬 병합을 위해 아래 그림과 같이 하나의 씬을 다른 씬에 드래그합니다.



 아래와 같은 메시지가 나옵니다.  이미 존재하는 씬에서 병합을 할지, 아니면 새로운 씬을 만들어 병합 작업을 할지를 결정합니다. 아무래도 새로운 씬 파일을 생성하는 편이 안전하겠죠.



 씬 병합 방법을 선택합니다. [Semantic and merge tool]은 시맨틱 병합과 외부 병합 툴을 통한 작업 이렇게 두 단계를 거치며, [Merge tool only]는 외부 병합 툴에 의해서 일반적인 병합 과정만을 합니다. 



 먼저 시맨틱 병합 작업을 엔진에서 진행합니다. 만약 시맨틱 작업이 끝난 후 추가적으로 병합 작업이 필요하다면, 아래 그림과 같이 자동으로 외부 병합 툴이 실행되어서 직접 마무리 병합 작업을 할 수 있습니다. 만약 특별히 충돌이 일어날 일이 없이 시맨틱을 통한 병합으로 두 씬이 합쳐지는 경우에는 외부 툴 실행없이 끝날 수 있습니다. 



 외부 툴에 의한 병합 작업이 최종적으로 끝났다면, Accept를 클릭하여 작업을 종료합니다. 



 아래와 같이 a1씬과 a2씬을 병합한 새로운 a1+a2 씬이 생성됩니다.

 (새로 병합된 씬이 보이지 않을 경우, 프로젝트 윈도우를 수동 갱신해보시기 바랍니다.)


 감사합니다.




Posted by 흑 기사
,