경량 렌더 파이프라인에서 유니버설 렌더 파이프라인으로 업그레이드
유니버설 렌더 파이프라인(URP)은 Unity 2019.3에서 경량 렌더 파이프라인(LWRP)을 대체합니다. 프로젝트가 LWRP를 사용하는 경우 URP를 사용하도록 업그레이드하여 Unity 2019.3을 이용하십시오.
Unity는 일부 요소를 자동으로 업그레이드하지만, 수동으로 변경해야 하는 요소도 있습니다. 이 가이드의 단계에 따라 LWRP 사용에서 URP 사용으로 전환하십시오.
업그레이드 전
어셈블리 정의 에셋 업데이트
URP는 어셈블리 정의 문자열 이름 대신 GUID를 사용합니다. 프로젝트에서 어셈블리 정의 에셋(ASMDefs)을 사용할 경우 각각에 대해 Use GUIDs를 활성화해야 합니다.
Unity는 업그레이드 프로세스의 일부로서 모든 기존 문자열 레퍼런스를 LWRP로 자동으로 업그레이드하지만, 향후 사용을 위해 어셈블리 정의 에셋에 GUID를 사용하는 것이 좋습니다.
프로젝트의 각 어셈블리 정의 에셋에 대해 다음을 수행하십시오.
- 어셈블리 정의 에셋을 선택합니다.
- 인스펙터에서 Use GUIDs를 활성화합니다.
어셈블리 정의 파일에 대한 자세한 내용은 어셈블리 정의 문서를 참조하십시오.
업그레이드 프로세스
LWRP 버전 업그레이드
업그레이드 프로세스를 시작하려면 다음 단계를 따르십시오.
- 업그레이드할 프로젝트를 Unity 2019.3에서 엽니다.
Unity는 LWRP를 7.x.x 버전으로 자동으로 업데이트하고, URP 패키지를 업데이트된 LWRP 패키지의 종속성으로 가져옵니다. Unity 스크립트 업데이터는 스크립트 파일을 자동으로 업그레이드합니다. 스크립트 업데이터가 완료되면 모든 스크립트가 정상적으로 컴파일됩니다.
셰이더 검색 경로 업그레이드
LWRP 프로젝트가 Shader.Find
를 사용하여 LWRP 셰이더를 검색하는 경우 검색 경로를 변경해야 합니다.
이 작업을 수행하는 방법은 다음과 같습니다.
Lightweight
를 검색하는Shader.Find
의 모든 인스턴스를Universal
을 검색하도록 변경합니다.
커스텀 셰이더 업그레이드
태그 업그레이드
URP는 자체 스크립팅 태그를 사용합니다. 셰이더가 LWRP LightMode
태그를 사용하는 경우에는 Unity가 이에 대한 내부 별칭을 사용하므로 URP 프로젝트에서도 동작합니다. 하지만 프로젝트의 향후 사용을 위해 태그를 수동으로 변경해야 합니다.
이 작업을 수행하는 방법은 다음과 같습니다.
Lightweight2D
태그의 모든 인스턴스를Universal2D
로 변경합니다.LightweightForward
태그의 모든 인스턴스를UniversalForward
로 변경합니다.
또한 URP는 LWRP에 다른 RenderPipeline 태그를 사용합니다. 자체 셰이더에 이 태그가 있는 경우 이를 수동으로 변경해야 셰이더가 동작합니다.
LightweightPipeline
태그의 모든 인스턴스를UniversalPipeline
으로 변경합니다.
셰이더 이름 업그레이드
다음 셰이더 이름은 URP용으로 변경되었으므로 셰이더 파일을 수동으로 업데이트해야 합니다.
UsePass 'Lightweight Render Pipeline/...'
의 모든 인스턴스를UsePass 'Universal Render Pipeline/...'
으로 변경합니다.
include 경로 업그레이드
URP는 LWRP에 다른 include 경로를 사용합니다. LWRP 7.x.x에는 include 포워딩이 포함되므로, 커스텀 셰이더가 LWRP에서 URP로 업그레이드됩니다. 하지만 URP 7.x.x에는 include 포워딩이 없기 때문에 include 경로를 수동으로 업데이트해야 합니다.
#include 'Packages/com.unity.render-pipelines.lightweight/xxx'
의 모든 인스턴스를#include 'Packages/com.unity.render-pipelines.universal/xxx'
로 변경합니다.
네임스페이스 업그레이드
프로젝트의 .cs 파일에서 LWRP 네임스페이스에 대한 레퍼런스를 새로운 유니버설 네임스페이스로 찾아 교체하십시오.
UnityEditor.Rendering.LWRP.xxx
의 모든 인스턴스를 이제UnityEditor.Rendering.Universal.xxx
로 변경합니다.
포스트 프로세싱 효과 업그레이드
URP 버전 7.x는 포스트 프로세싱 스택 V2(PPv2) 및 자체 통합 포스트 프로세싱 솔루션을 둘 다 지원합니다. 프로젝트에 포스트 프로세싱 스택 V2가 설치되어 있는 상태에서 URP 통합 포스트 프로세싱 솔루션을 사용하려는 경우 포스트 프로세싱 스택 V2 패키지를 삭제한 후 URP를 프로젝트에 설치해야 합니다. URP를 설치하고 나면 포스트 프로세싱 효과를 다시 생성할 수 있습니다.
LWRP에서 URP로 포스트 프로세싱 효과를 업그레이드하는 작업은 수동 프로세스입니다. URP의 포스트 프로세싱 구현을 사용하여 프로젝트의 각 포스트 프로세싱 프로파일을 수동으로 다시 생성해야 합니다.
URP의 통합 포스트 프로세싱 솔루션은 현재 커스텀 포스트 프로세싱 효과를 지원하지 않습니다. 프로젝트가 커스텀 포스트 프로세싱 효과를 사용하는 경우 현재는 URP의 통합 포스트 프로세싱 솔루션에서 다시 생성할 수 없습니다. 커스텀 포스트 프로세싱 효과는 향후 URP 릴리스에서 지원됩니다.
URP 설치 및 LWRP 제거
자동 업그레이드 프로세스의 일부로서 Unity는 URP를 LWRP의 종속성으로 설치했습니다. 이제는 URP를 프로젝트 자체의 종속성으로 설치해야 합니다. 따라서 LWRP를 제거할 때 Unity는 URP를 자동으로 제거하지 않습니다.
URP를 프로젝트의 종속성으로 설치하려면 다음 단계를 따르십시오.
- Window > Package Manager 메뉴로 이동합니다.
- Universal RP 패키지를 찾은 후 이름 오른쪽에 있는 버전 번호를 확인합니다. 이 버전의 URP가 프로젝트에 추가되었습니다.
- Unity를 닫습니다.
- 파일 탐색기에서 Unity 프로젝트의 루트 폴더를 엽니다.
- Packages 폴더를 열고 manifest.json을 찾습니다. 이 파일이 프로젝트의 프로젝트 매니페스트 파일입니다.
- 텍스트 편집기를 사용하여 프로젝트 매니페스트 파일을 엽니다.
- 종속성 섹션 상단에서 다음 항목을 추가합니다.
"com.unity.render-pipelines.universal": "[Version number you noted earlier]"
예를 들어 URP 버전이 7.1.1이었다면 종속성 섹션은 다음과 같은 모습입니다.
"dependencies": {
"com.unity.render-pipelines.universal": "7.1.1",
...
}
이는 프로젝트의 종속성으로 설치한 URP 버전을 나타냅니다. 이제 LWRP를 안전하게 제거할 수 있습니다.
- Unity에서 프로젝트를 엽니다.
- Package Manager 창을 엽니다.
- Lightweight RP를 찾아 선택합니다.
- Package Manager 창의 오른쪽 하단에서 Remove를 클릭합니다. Unity가 프로젝트에서 LWRP 패키지를 완전히 제거합니다.