Unity 검색

새로운 프리팹 워크플로 소개

2018년 6월 20일 테크놀로지 | 6 분 소요
공유

Is this article helpful for you?

Thank you for your feedback!

매즈 나이홈(Mads Nyholm), 2018년 6월 20일

테크놀로지

Unity에서 가장 많이 요청을 받은 추가 기능은 바로 네스티드 프리팹(nested prefab)입니다. 네스티드 프리팹뿐 아니라 프리팹 워크플로에 더 많은 기능이 업데이트되기를 바라는 많은 분들을 위해 재사용이 가능하고 보다 많은 부분을 제어하며, 모든 과정을 안전하게 수행하는 데 중점을 두고 프리팹 시스템을 전반적으로 개선하고 있습니다. 이후 적용될 개선 사항을 계속해서 블로그를 통해 소개할 것이며, 이 게시물은 그 첫 번째 글입니다. 어제 Unite Berlin 기조 연설에서 공개된 새로운 프리팹 시스템이 추가된 Unity 빌드의 프리뷰 버전은 여기에서 다운로드할 수 있습니다.

우선 Unity에 탑재된 프리팹의 기본 사항을 정리해보겠습니다. 기본적으로 프리팹 에셋은 게임 오브젝트 및 그 자식들의 템플릿과 같습니다. 프리팹 에셋의 인스턴스를 사용하면 여러 씬에 걸쳐 게임 오브젝트의 복사본을 여러 개 생성할 수 있습니다. 프리팹 에셋이 변경될 경우 모든 프리팹 인스턴스도 자동으로 업데이트됩니다.

Unity는 다양한 인디 스튜디오 및 AAA급 스튜디오와 이야기를 나누고 게임 개발자들이 현재 프리팹을 어떻게 활용하는지 자세히 알아보았습니다. 이 과정에서 발견한 문제점은, 프리팹 에셋을 편집하려면 계층 구조(Hierarchy)의 열린 씬(Scene)으로 에셋을 드래그하여 수정한 다음 변경 사항을 적용하고, 에셋을 다시 삭제해야 한다는 것이었습니다. 또 다른 문제는 인스펙터(Inspector)의 프리팹 인스턴스 적용(Apply) 버튼이었습니다. 이 버튼 사용 시 변경 내용이 적용되는 대상 및 범위를 확인하지 못한 상태로 프리팹 에셋에 변경 사항이 바로 적용되었기 때문입니다.

Unity는 이러한 문제를 해결하기 위해 다양한 기능을 새롭게 추가했습니다. 먼저 이전 버전과 호환할 수 있으며 중첩과 상속도 지원하는 프리팹 백엔드를 구현했습니다. 또한 프리팹 인스턴스의 프로퍼티 시각화와 오브젝트 오버라이드를 개선하고, 여러 세부 요소별로(프로퍼티당, 컴포넌트/게임 오브젝트당 또는 이전처럼 전체 프리팹 인스턴스별로) 오버라이드를 적용하는 기능을 추가했습니다. 마지막으로, 별도의 창에서 프리팹 에셋을 편집할 수 있는 프리팹 모드를 추가했습니다.

프리팹 모드

프리팹 모드는 프리팹으로 작업하는 방식을 근본적으로 바꿔놓을 것입니다. 프리팹 모드를 사용하면 프리팹 변경 시 프리팹 인스턴스에 변경 사항을 적용하거나 프리팹 에셋을 직접 수정하는 방식 중에서 선택할 수 있습니다.

프리팹 모드에서는 구조적 요소의 변경을 비롯한 모든 변경 작업 시 프리팹 연결을 해제하지 않고도 변경 사항을 프리팹 에셋에 적용할 수 있으므로, 프리팹 에셋 편집 작업을 더욱 면밀하게 제어할 수 있습니다. 또한 프리팹 모드에서는 추후 에셋에 변경 사항을 적용하기 위해 프리팹 인스턴스를 일시적으로 변경할 필요가 없습니다. 이에 따라 오버라이드로 유지되어야 하는 기존의 다른 오버라이드를 적용하는 실수를 저지를 가능성이 크게 줄어들었습니다. 따라서 프리팹 에셋 변경 시 프리팹 모드를 사용하고, 꼭 필요한 경우에만 프리팹 인스턴스를 오버라이드할 것을 권장합니다. 참고로 적용(Apply) 워크플로도 대폭 개선되었으며, 이에 관한 자세한 내용은 다음에 게시할 블로그에서 다루겠습니다.

프리팹 모드는 계층 구조와 씬 뷰를 대신하여 프리팹 에셋을 별도의 창에 표시합니다. 계층 구조 및 씬 뷰의 새로운 헤더로 프리팹 모드를 알아볼 수 있으며, 프리팹 모드의 배경 색상은 환경 설정(Preferences)에서 커스터마이즈할 수 있습니다.

예를 들어 위 그림에서 빨간색 원으로 표시된 화살표를 클릭하여 씬에서 프리팹 모드를 실행하면 계층 구조에 프리팹 헤더가 표시되며, 씬 뷰에 이동 경로 헤더가 나타납니다(위 그림의 빨간색 상자).

프리팹 모드를 실행하는 방법에는 다음의 세 가지가 있습니다.

  • 프로젝트(Project) 창에서 프리팹(Prefab)을 더블 클릭합니다.
  • 프리팹 인스턴스의 루트 게임 오브젝트 옆에 있는 계층 구조(Hierarchy) 창에서 새롭게 추가된 화살표 버튼을 클릭합니다.
  • 인스펙터(Inspector)의 열기(Open) 버튼을 클릭하여 프리팹 에셋이나 프리팹 인스턴스의 루트 게임 오브젝트를 엽니다.

프리팹 에셋으로 작업하기

프리팹 중첩을 사용할 수 있도록 프리팹 백엔드에 기술적 변경 사항을 적용했습니다. 따라서 엄밀히 말하면 프리팹은 이제 임포트된 에셋이므로, 더 이상 프리팹 게임 오브젝트를 프로젝트(Project) 창에서 편집할 수 없습니다. 프로젝트(Project) 창에서 직접 오브젝트를 편집했던 기존의 워크플로와는 달리 프리팹 모드에서는 어느 뎁스에서든 오브젝트를 편집하고, 씬 뷰에서 진행하는 작업의 결과물을 확인할 수도 있습니다.

프리팹 인스턴스로 작업하기

프리팹 중첩을 제공하면서 변경된 또 다른 사항은 더 이상 프리팹 인스턴스 연결을 해제하여 해당 인스턴스의 구조를 변경할 수 없다는 점입니다. 따라서 이제 게임 오브젝트를 삭제하거나, 게임 오브젝트의 부모 자식 관계를 재지정하거나, 트랜스폼(Transform)을 RectTransform으로 대체하거나 그 반대로 대체하는 등의 변경 작업을 모두 프리팹 모드에서 수행할 수 있습니다. 또는 프리팹 인스턴스와 프리팹 에셋의 연결을 완전히 해제하고 그 결과로 만들어지는 일반 게임 오브젝트 간의 연결 구조를 재구성하기 위해서는 프리팹 인스턴스의 패키지를 언팩하면 됩니다.

프리팹 단계

에디터에서의 ‘단계(stage)’는 다른 게임 오브젝트와 격리된 여러 게임 오브젝트를 가리킵니다. 프리팹 모드에서는 씬 뷰 상단의 이동 경로가 각기 다른 단계를 나타내며, 각 단계는 별도의 ‘월드’와 같습니다. 기본적으로는 사용자가 로드하고 계층 구조에서 확인할 수 있는 모든 씬이 표시되는 기본 단계(Main Stage)가 있습니다. 프리팹 모드에서 프리팹을 열면 해당 프리팹의 콘텐츠에 대한 프리팹 단계가 생성됩니다. 프리팹 단계를 연 상태에서는 기본 단계 게임 오브젝트가 언로드되지 않으며, 따라서 이러한 게임 오브젝트는 계속해서 게임(Game) 뷰에 표시됩니다.

씬 뷰와 계층 구조는 항상 현재 단계, 즉 가장 오른쪽에 있는 이동 경로에 해당하는 단계를 표시합니다. 씬이 표시되는 기본 단계로 돌아가려면 씬 뷰에 있는 이동 경로의 ‘씬(Scenes)’ 버튼이나, 계층 구조의 돌아가기(Back) 화살표 버튼을 클릭하세요.

아래 비디오에서 새로운 워크플로의 실제 사용 사례를 확인해 보세요.

이 콘텐츠는 Targeting Cookies 카테고리를 수락해야만 동영상을 시청할 수 있도록 허용하는 타사 제공업체에서 호스팅합니다. 이러한 제공업체의 비디오를 보려면 쿠키 환경 설정에서 Targeting Cookies 카테고리를 수락하시기 바랍니다.

새로운 프리팹 기능을 사용해 보려면 Unity 프리팹 페이지에서 프리뷰 빌드를 다운로드하세요. 자세한 정보, 질문과 피드백은 개선된 프리팹에 관한 Unity 포럼에서 확인하세요.

라이브: Unite Berlin의 개선된 프리팹 관련 세션

개선된 프리팹 워크플로의 실제 사용 사례를 확인하고 싶다면 YouTube나 Twitch에서 Unite Berlin의 라이브 스트리밍을 시청해 보세요. 이 스트리밍 방송에서는 치로 콘티니시오(Ciro Continisio)가 진행하는 Improved Prefab Workflow(개선된 프리팹 워크플로) 세션을 시청할 수 있으며, 이어서 루네 스코보 야콥센(Rune Skovbo Jacobsen)과 스틴 룬드(Steen Lund)가 Technical Deep Dive into the New Prefab System(새로운 프리팹 시스템의 세부 기술 사항) 세션을 진행하며, Unity가 구현한 새로운 기능의 장단점을 자세히 설명합니다. 이러한 세션은 컨퍼런스 후 1개월 내에 편집을 거쳐 Unity의 YouTube 채널에 업로드될 예정입니다.

2018년 6월 20일 테크놀로지 | 6 분 소요

Is this article helpful for you?

Thank you for your feedback!