diff options
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitLensEffect.cs')
-rw-r--r-- | Assets/Scripts/Unit/Components/UnitLensEffect.cs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Assets/Scripts/Unit/Components/UnitLensEffect.cs b/Assets/Scripts/Unit/Components/UnitLensEffect.cs index 7758c943..a3c5d2c8 100644 --- a/Assets/Scripts/Unit/Components/UnitLensEffect.cs +++ b/Assets/Scripts/Unit/Components/UnitLensEffect.cs @@ -140,6 +140,8 @@ public class UnitLensEffect : UnitComponent }
}
+ List<LensEffectBase> temp = ListPool<LensEffectBase>.Get();
+
for (int i = 0; i < m_Effects.Count; ++i)
{
LensEffectBase eff = m_Effects[i];
@@ -147,8 +149,20 @@ public class UnitLensEffect : UnitComponent if (method == null)
continue;
method.Invoke(eff, new object[] { });
+ if(eff.CanDestroy())
+ {
+ temp.Add(eff);
+ }
}
+ for(int i = 0; i< temp.Count; ++i)
+ {
+ temp[i].OnDestroy();
+ m_Effects.Remove(temp[i]);
+ }
+
+ ListPool<LensEffectBase>.Release(temp);
+
foreach (var cb in m_InUseCommandBuffers)
{
CameraEvent ce = cb.Key.ToCameraEvent();
|