From aa0f9b6d8b50ca6dda9ca9e235850e721b7a53dd Mon Sep 17 00:00:00 2001 From: Nick Date: Sun, 1 May 2022 00:06:19 -0400 Subject: [PATCH] Clear texture cache on scene reload --- NewHorizons/Main.cs | 1 + NewHorizons/Utility/ImageUtilities.cs | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index b4945b32..79687d44 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -135,6 +135,7 @@ namespace NewHorizons Logger.Log($"Scene Loaded: {scene.name} {mode}"); SearchUtilities.ClearCache(); + ImageUtilities.ClearCache(); _isChangingStarSystem = false; diff --git a/NewHorizons/Utility/ImageUtilities.cs b/NewHorizons/Utility/ImageUtilities.cs index 4d1aa679..6fc800d8 100644 --- a/NewHorizons/Utility/ImageUtilities.cs +++ b/NewHorizons/Utility/ImageUtilities.cs @@ -143,11 +143,20 @@ namespace NewHorizons.Utility var texture = new Texture2D(2, 2); texture.name = Path.GetFileNameWithoutExtension(path); texture.LoadImage(data); - UnityEngine.Object.DontDestroyOnLoad(texture); _loadedTextures.Add(path, texture); return texture; } + public static void ClearCache() + { + foreach(var texture in _loadedTextures.Values) + { + if (texture == null) continue; + UnityEngine.Object.Destroy(texture); + } + _loadedTextures.Clear(); + } + public static Color GetAverageColor(Texture2D src) { var pixels = src.GetPixels32();