PixelCameraManager.viewCamera/upscaledCanvas 는 [SerializeField] 가 아니라
프리팹에 저장되지 않아 인스턴스마다 항상 null → Initialize() 가 항상
FindAnyObjectByType 로 찾는다. Object.Destroy 는 프레임 끝 처리이므로
모드 전환(Teardown→Assemble 동일 프레임)에서 새 매니저가 아직 살아 있는
이전 리그의 뷰 카메라를 잡았고, 프레임 끝에 그것이 파괴되며
CanvasViewCamera.get_Aspect 에서 매 프레임 예외가 났다(PD 실측 200건).
FindAnyObjectByType 는 비활성 오브젝트를 제외하므로 파괴 전에 SetActive(false).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PD 실측: [카메라] 모드를 바꾸면 UpscaledCanvas.SetCanvasRenderTexture 에서
'Material has been destroyed' 예외가 매 프레임(콘솔 978건).
원인 = Object.Destroy 가 프레임 끝 처리라, 머티리얼 인스턴스를 지운 뒤에도
같은 프레임에 PixelCameraManager.LateUpdate 가 돌아 targetTexture==null 을 보고
RT 를 새로 만들고 이미 지운 머티리얼에 SetTexture 했다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>