프리팹 에셋을 편집하려면 프리팹 모드에서 여십시오. 프리팹 모드를 이용하면 씬의 다른 게임 오브젝트와 별도로 프리팹 에셋의 콘텐츠를 확인하고 편집할 수 있습니다. 프리팹 모드에서 변경한 사항은 해당 프리팹의 모든 인스턴스에 영향을 줍니다.
프리팹 에셋은 단독으로 또는 컨텍스트를 고려하여 편집할 수 있습니다.
단독 편집: 프리팹을 단독으로 편집하는 경우 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 커맨드에 대한 커스텀 단축키를 설정할 수도 있습니다.
프리팹 모드에서 프리팹 에셋을 변경하면 프리팹 모드에서만 해당 변경 사항을 되돌릴 수 있습니다. 특정 프리팹 에셋에 대한 프리팹 모드를 종료하면 해당 프리팹 에셋과 관련된 편집 사항은 실행 취소 기록에서 더 이상 이용할 수 없습니다.
씬을 editing environment로 할당하여 단독으로 프리팹 모드와 사용할 수 있습니다. 이렇게 하면 빈 씬이 아니라 선택한 씬을 배경으로 프리팹을 편집할 수 있습니다. 이는 선택한 특정 배경에 프리팹이 어떻게 보이는지 알 수 있어서 유용할 수 있습니다. Unity는 단독으로 프리팹 모드를 열 때 이 편집 환경만 사용합니다.
편집 환경으로 할당하는 씬의 게임 오브젝트는 프리팹 모드에서 선택할 수 없으며, 계층 창에도 표시되지 않습니다. 이렇게 하면 관련 없는 다른 게임 오브젝트를 실수로 선택하거나 계층 창에 주의를 빼앗길 염려 없이 프리팹 편집에만 집중할 수 있습니다.
씬을 편집 환경으로 설정하려면 에디터 창을 열고(상단 메뉴: Edit > Project Settings에서 Editor 카테고리 선택) Prefab Editing Environment 섹션으로 이동합니다. “비 UI” 프리팹의 경우 Regular Environment 설정을, UI 프리팹의 경우 UI Environment 설정을 사용합니다. UI 프리팹은 루트에 일반 Transform 컴포넌트가 아닌 Rect Transform 컴포넌트가 있는 프리팹을 의미합니다. “비 UI” 프리팹은 일반 Transform 컴포넌트가 있는 프리팹입니다.