툴/유니티

Resources.UnloadUnusedAssets / 메모리 이슈 / 메모리 관리

스튜디오 오버그래픽스 2023. 3. 3. 13:02

https://docs.unity3d.com/ScriptReference/Resources.UnloadUnusedAssets.html

 

Unity - Scripting API: Resources.UnloadUnusedAssets

An asset is deemed to be unused if it isn't reached after walking the whole game object hierarchy, including script components. Static variables are also examined. The script execution stack, however, is not examined so an asset referenced only from within

docs.unity3d.com

 

새로운 이미지 파일이 생길때마다 해당 이미지가 적용된 머테리얼을 사용하게끔 만들었다.

www로 이미지를 로드하고 SetTexture로 해당 이미지를 머테리얼에 적용시켰다.

www로 이미지를 로드하는거까지는 문제가 없지만 SetTexture로 해당 이미지가 머테리얼에 적용될때마다 새로운 머테리얼이 메모리에 남게 된다.(해당 머테리얼을 사용한 오브젝트가 Destroy 되도 머테리얼은 메모리에 남아있음)

수천개 누적되다보면 메모리 사용량이 계속늘면서 이슈가 된다.

 

그래서 메모리 누적이 되지 않게 관리하기 위해

Resources.UnloadUnusedAssets을 사용

 

사용하지 않고있는 Assets데이터들을 Load하지 않게 되면서 메모리 사용량을 줄이게 된다.