URP를 사용해보려 하니 Camera 제어 방식이 BIRP와는 달라서 Camera를 어떻게 관리해야 할지 고민이었다. 나는 기본적으로 Scene 별로 분리하고 Scene마다 Camera를 따로 관리하는 편인데, URP에서는 Base Camera를 1개 두고 나머지를 Overlay Camera로 둬서 Base Camera의 CameraStack에 추가해서 사용해야 한단다. Overlay들의 렌더링 순서도 CameraStack List의 등록 순서라서 Sort를 해서 해결해야 될 듯하고..
일단 기존 BIRP의 카메라 제어 방식을 유지하기 위해 고민을 해보다보니, CameraStack 등록용으로 새로운 Base Camera를 하나 추가하고, 나머지를 모두 Overlay로 해서 depth만 잘 관리하면 BIRP랑 구조가 같게 될 것 같다. 결과적으로 URP에서는 Base Camera 하나 더 추가하면 될 듯 하다. 그래서 구조를 아래와 같이 잡았다.
1) CameraStackManagerSGT(GameObject) 프리팹 생성 및 Main Scene(최초 생성 및 파괴되지 않는 Scene)에 올리기 └ Camera (GameObject) └ Render Type : Base └ Projection : Othographic └ Culling Mask : Nothing └ CameraStackController(Component) └ fDepth : -1(Base 1개만 쓰기 때문에 현재 생각으로는 의미없어서 초기값) └ bIsBaseCamera - Check
2) 나머지 Camera에 CameraStackController(Component) 추가 └ Render Type : Overlay └ Projection : 상황에 맞게 └ Culling Mask : 상황에 맞게 └ CameraStackController(Component) └ fDepth : BIRP의 Camera Depth와 같게 제어(숫자가 높을수록 위에 그려짐) └ bIsBaseCamera : UnCheck
CameraStackManagerSGT.cs와 CameraStackController.cs 소스 및 프리팹은 아래 첨부 파일 참조
Facebook iOS SDK 18.0.0 버전을 추가하면서 소스코드가 많이 늘어났는지 Xcode에서 위와 같은 빌드 에러가 뜬다. 결국 소스코드 양을 줄여야 된다는 말인데.. 전부터 느끼는 거지만 Facebook SDK는 쓸데없이 다 때려박아놔서 소스양이 많아서 이런저런 문제를 계속 만들어 내는 것 같다.