유니티에서 렌더텍스쳐를 사용할 때 메모리의 비 정상적인 사용량으로 문제가 생겨 이를 자세히 살펴보아 문제점을 발견하여 정리하였습니다.
❓ 문제 상황
- 평소에 1GB가 넘지 않는 메모리가 8GB 정도의 매우 높은 상태로 구동이 되고 있는 상황입니다.
- 메모리 누수에는 여러가지 이유가 있지만, 이번 문제는 잘못된 렌더텍스쳐의 사용이었습니다.
📌 원인
- 렌더 텍스쳐를 Output하는 카메라가 활성화되어 있는 상태입니다.
- 하지만 카메라에서 렌더링한 렌더텍스쳐를 화면에 보여주는 Raw Image는 비활성화 상태입니다.
- 필요한 경우에만 해당 Raw Image를 활성화하여 렌더텍스쳐를 보여주도록 한 상태입니다.
🔨 해결 방법
if(index == 3)
mCharacterSelectRenderCamera.gameObject.SetActive(true);
else
mCharacterSelectRenderCamera.gameObject.SetActive(false);
- 렌더텍스쳐를 렌더링 할 Raw Image가 활성화될 때만 렌더링을 하는 카메라를 활성화해줘야 합니다.
- 렌더 텍스쳐를 Output 하는 카메라가 켜져 있는 상태에서 Raw Image가 씬에 활성화되지 않은 상태라면 무한정 메모리가 증가하는 현상이 있습니다. 이것이 유니티 버그인지는 모르겠지만 앞으로는 주의해야 할 것 같습니다.
✅ 결과
- 메모리 사용량이 정상적으로 돌아온것을 볼 수 있습니다.
'unity etc. > others' 카테고리의 다른 글
[유니티] 에디터 자동 저장 (0) | 2023.05.04 |
---|---|
[유니티] An error occurred while resolving packages: Project has invalid dependencies: com.unity.render-pipelines.universal cannot be found (0) | 2023.04.20 |
[유니티] 오브젝트 핑크색 오류 해결 (쉐이더 오류) (0) | 2023.03.21 |
[유니티] 텍스트 맨 앞에 표시하기 (0) | 2023.03.10 |
유니티 TMP 폰트 한번에 모두 바꾸기 (0) | 2023.01.11 |