프리팹 에셋을 편집하려면 프리팹 모드에서 엽니다. 프리팹 모드를 사용하면 씬의 다른 게임 오브젝트와 별도로 프리팹 에셋의 콘텐츠를 보고 편집할 수 있습니다. 프리팹 모드에서 변경하면 해당 프리팹의 모든 인스턴스에 영향을 미칩니다.
프리팹 에셋은 단독으로 편집하거나 컨텍스트를 고려하여 편집할 수 있습니다.
단독: 프리팹을 단독으로 편집하는 경우 Unity는 현재 작업 중인 씬의 나머지 부분을 모두 숨기고, 프리팹 자체와 관련된 게임 오브젝트만 표시합니다(선택 사항인 프리셋 편집 환경 - 아래 참조).
컨텍스트: 컨텍스트를 고려하여 프리팹을 편집하는 경우 현재 작업 중인 씬의 나머지 부분이 모두 표시되지만, 편집할 수 없도록 잠겨 있습니다.
프리팹 모드에서 여러 가지 방법으로 프리팹을 편집할 수 있습니다. 프리팹 에셋을 열고 단독으로 편집하려면 다음과 같은 방법을 따르면 됩니다.
단독 프리팹 모드를 시작하면 Unity는 해당 프리팹의 콘텐츠만 씬 뷰와 계층 창에 표시합니다. 다음 이미지에서 프리팹의 루트는 일반 게임 오브젝트이며 파란색 프리팹 인스턴스 아이콘이 없습니다.
프리팹 모드에서 씬 뷰의 상단에 브레드크럼이 표시됩니다. 가장 오른쪽에 있는 엔트리는 현재 열려 있는 프리팹입니다. 브레드크럼 바를 사용하여 메인 씬 또는 열어둔 기타 프리팹 에셋으로 돌아갑니다.
계층 창의 상단에 현재 열려 있는 프리팹을 보여 주는 프리팹 헤더 바가 표시됩니다. 헤더 바의 뒤로 가기 화살표를 사용하여 한 단계 전으로 이동할 수 있습니다. 이는 씬 뷰의 브레드크럼 바에서 이전 브레드크럼을 클릭하는 동작에 해당합니다.
또는 해당 프리팹의 인스턴스를 통해 컨텍스트 내에서 프리팹 에셋을 열 수도 있습니다. 이를 수행하는 방법은 다음과 같습니다.
기본적으로 Unity는 컨텍스트의 시각적 표현을 회색조로 표시하여 편집하는 프리팹 콘텐츠와 시각적으로 구분합니다. 그러나 프리팹 바의 Context: 컨트롤을 사용하여 다음 상태 중 하나로 설정할 수 있습니다.
컨텍스트에 속하거나 계층 구조에 표시되는 게임 오브젝트는 선택할 수 없습니다. 이렇게 하면 관련 없는 다른 게임 오브젝트를 실수로 선택하지 않게 되고 계층 창이 복잡해지지 않아 프리팹 편집에 집중할 수 있습니다. 그러나 컨텍스트가 Hidden으로 설정되어 있지 않으면 프리팹 콘텐츠의 일부인 게임 오브젝트를 이동할 때 Unity의 스내핑 기능을 사용하여 컨텍스트의 게임 오브젝트에 스냅할 수 있습니다.
컨텍스트 내 프리팹 모드에서 Unity는 프리팹 콘텐츠를 열었던 프리팹 인스턴스의 위치와 일치하는 위치에 프리팹 콘텐츠를 표시합니다. 즉, 프리팹 콘텐츠의 루트 트랜스폼을 미리 볼 때 프리팹 에셋의 실제 위치 및 회전 값과 다르게 표시될 수 있습니다.
컨텍스트 내 프리팹 모드에서는 이러한 값을 편집할 수 없습니다. 이 값을 편집해야 하는 경우 프리팹을 단독으로 열거나, 또는 프로젝트 창에서 프리팹 에셋을 선택한 후 인스펙터에서 값을 편집하면 됩니다.
루트 트랜스폼 프로퍼티 외에도 프리팹 인스턴스의 다른 프로퍼티를 오버라이드할 수 있으며, 이렇게 하면 인스턴스인 프리팹 에셋에 비해 프리팹의 모습이 크게 변경될 수 있습니다. 프리랩 인스턴스에서 오버라이드된 값을 미리 보려면 프리팹 바에서 컨텍스트 내 프리팹 모드에서 Show Overrides 토글을 활성화합니다. 이 설정이 활성화된 경우 프리팹 인스턴스에서 오버라이드하는 모든 프로퍼티가 프리팹 컨텍스트에서 동일한 방식으로 미리 표시되며 편집할 수는 없습니다. 해당 프로퍼티를 편집하려면 Show Overrides 토글을 다시 비활성화합니다.
프리팹 모드에는 씬 뷰의 오른쪽 상단 모서리에 Auto Save 설정이 있습니다. 활성화되면 Unity는 프리팹에 적용한 모든 변경 사항을 프리팹 에셋에 자동으로 저장합니다. 기본적으로 Auto Save가 활성화되어 있습니다.
해당 변경 사항을 프리셋 에셋에 자동으로 저장하지 않고 변경하려면 Auto Save 체크박스를 비활성화합니다. 이 경우 Unity는 현재 프리팹의 프리팹 모드를 종료할 때 저장되지 않은 변경 사항을 저장할지 묻습니다. 프리팹 모드에서 프리팹을 편집할 때 동작이 느린 경우 Auto Save를 끄면 도움이 될 수 있습니다.
프리팹 에셋을 통해 프리팹 모드를 열면 Unity는 프리팹의 콘텐츠를 단독으로 표시합니다. 하지만 계층 창의 프리팹 인스턴스를 통해 프리팹 모드를 열면 컨텍스트 내 프리팹 모드가 열립니다.
이 방법으로 프리팹 모드를 열면 인스턴스를 편집하는 것이 아니라 프리팹 에셋 자체를 편집하는 경우에도 씬 뷰에서 프리팹 인스턴스의 컨텍스트를 볼 수 있습니다. 예를 들어 씬의 프리팹 인스턴스를 통해 컨텍스트 내 프리팹 모드를 열면 프리팹을 편집하는 동안 해당 씬의 주변 환경을 볼 수 있습니다. 또한 프리팹은 씬에서와 동일한 조명 조건으로 표시됩니다.
컨텍스트가 표시된 상태로 프리팹 인스턴스를 열지 않고 단독으로 열고 싶다면 Alt 키를 누른 상태로 Open 버튼을 클릭하거나 화살표 버튼을 클릭하여 프리팹 모드를 여십시오. 또한 Shortcuts 창에서 Stage > Edit Prefab in Isolation 커맨드에 대한 커스텀 단축키를 설정할 수도 있습니다.
프리팹 모드에서 프리팹 에셋을 변경하는 경우에는 프리팹 모드에서만 변경을 실행 취소할 수 있습니다. 특정 프리팹 에셋에 대한 프리팹 모드를 종료하면 해당 프리팹 에셋과 관련된 편집은 더 이상 실행 취소 내역에 제공되지 않습니다.
씬을 단독 프리팹 모드에서 사용할 편집 환경으로 할당할 수 있습니다. 이렇게 하면 빈 씬이 아닌 원하는 배경에 프리팹을 편집할 수 있습니다. 선택한 특정 배경에서 프리팹이 어떻게 보이는지 확인하는 데 유용할 수 있습니다. Unity는 단독 프리팹 모드를 열 때만 이 편집 환경을 사용합니다.
프리팹 모드에서 편집 환경으로 할당한 씬의 게임 오브젝트는 선택할 수 없으며 계층 구조에도 표시되지 않습니다. 이렇게 하면 관련 없는 다른 게임 오브젝트를 실수로 선택하지 않게 되고 계층 창이 복잡해지지 않아 프리팹 편집에 집중할 수 있습니다.
씬을 편집 환경으로 설정하려면 에디터 창(상단 메뉴: Edit > Project Settings에서 Editor 카테고리 선택)을 열고 Prefab Editing Environment 섹션으로 이동합니다. ‘UI가 아닌’ 프리팹에는 Regular Environment 설정을, UI 프리팹에는 UI Environment 설정을 사용합니다. UI 프리팹은 일반 Transform 컴포넌트가 아닌 루트에 Rect Transform 컴포넌트가 있는 프리팹입니다. ‘UI가 아닌’ 프리팹은 일반 Transform 컴포넌트가 있는 프리팹입니다.