[ 개발 일기 ] Screen Space - Camera UI에 PP가 적용되지 않도록 하는 방법

2024. 6. 12. 16:00게임 개발/개발 일기

 네모 오브젝트가 UI이고, 흐림 효과와 어두워지는 효과가 안 적용되는 모습이다.

 

졸업 작품을 진행하면서 PP 색 변경 효과를 넣었는데 UI까지 색이 변경되어서 해결하기 위한 방법을 찾던 도중 배운 내용이다.

일단 두 가지 방법이 있다.

 

1. Canvas를 Screen Space - Overlay로 변경한다.

가장 간단한 방법이다.

하지만 UI에 쉐이더가 들어가있을 경우 Screen Space - Camera로 해야되는 경우가 발생한다.

 

2. 두 개의 카메라를 사용한다.

1. 기본 카메라의 복사본을 만들고 이를 UICam으로 이름을 변경합니다.

2. UI 카메라에서 모든 스크립트와 오디오 리스너를 제거합니다.

3. UI 카메라에서 포스트 프로세싱을 선택 취소합니다.

4. UI 카메라를 기본 카메라의 하위로 설정하고 변환을 재설정합니다.

5. Screen Space - Camera에서 UICam를 캔버스의 소스로 사용합니다.

6. 기본 카메라를 Render Type - Base(기본값)로 설정합니다.

7. UI 카메라를 Render Type - Overlay로 설정합니다.

8. 기본 카메라의 Stack에 UI 카메라를 추가합니다.

9. 메인 카메라의 컬링 마스크(Culling Mask)에서 UI를 선택 취소합니다.

10. UI Camera의 Culling Mask에서 UI를 제외한 모든 항목을 선택 취소합니다.

 

다만 이 경우 캔버스에 있는 것들을 오브젝트로 취급하기에 모든 화면에 적용되는 포스트 프로세싱인

Color Adjustment, Chromatic Abrration 등은 UI에도 적용된다.

Vignette와 같이 오브젝트에 적용되는 것은 UI에 적용되지 않는다.

Post Processing이 어떻게 작동되는지 모르기에 추측이긴 하다. Panini Projection은 UI에 적용되지 않는 모습을 보면 잘 모르겠다.

 

 

 

 참고 자료

https://discussions.unity.com/t/stop-post-processing-effects-on-ui/181585/4

https://forum.unity.com/threads/how-to-disable-post-processing-for-ui.1038238/