From e6372b2703e36f4d08af2d92a72efa7f70b136d1 Mon Sep 17 00:00:00 2001 From: drewcassidy Date: Sat, 6 Jun 2020 11:28:28 -0700 Subject: [PATCH] Destroy materials and properties when MPC is destroyed --- .../MaterialModifiers/MaterialPropertyCollection.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Source/ConformalDecals/MaterialModifiers/MaterialPropertyCollection.cs b/Source/ConformalDecals/MaterialModifiers/MaterialPropertyCollection.cs index a7491c2..2e7ded1 100644 --- a/Source/ConformalDecals/MaterialModifiers/MaterialPropertyCollection.cs +++ b/Source/ConformalDecals/MaterialModifiers/MaterialPropertyCollection.cs @@ -24,7 +24,7 @@ namespace ConformalDecals.MaterialModifiers { if (_decalMaterial == null) { _decalMaterial = new Material(_shader); UpdateMaterial(_decalMaterial); - + _decalMaterial.SetInt(DecalPropertyIDs._Cull, (int) CullMode.Off); } @@ -99,6 +99,15 @@ namespace ConformalDecals.MaterialModifiers { _materialProperties ??= new Dictionary(); } + public void OnDestroy() { + if (_decalMaterial != null) Destroy(_decalMaterial); + if (_previewMaterial != null) Destroy(_previewMaterial); + + foreach (var entry in _materialProperties) { + Destroy(entry.Value); + } + } + public void AddProperty(MaterialProperty property) { if (property == null) throw new ArgumentNullException(nameof(property)); @@ -244,7 +253,7 @@ namespace ConformalDecals.MaterialModifiers { public void UpdateMaterial(Material material) { if (material == null) throw new ArgumentNullException(nameof(material)); - + foreach (var entry in _materialProperties) { Debug.Log($"Applying material property {entry.Key} {entry.Value.PropertyName} {entry.Value.GetInstanceID()}");