summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/Components/UnitLensEffect.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-09-29 20:26:12 +0800
committerchai <chaifix@163.com>2021-09-29 20:26:12 +0800
commitb781f9ecf36bcc6c614538ac427fa2eb8f1e29d2 (patch)
treeb7380f99de4763c56f80826c26f7875a89ef8dfe /Assets/Scripts/Unit/Components/UnitLensEffect.cs
parent61d6e9bf192ffa54abc57bab69b1bd88c3b8d62b (diff)
*misc
Diffstat (limited to 'Assets/Scripts/Unit/Components/UnitLensEffect.cs')
-rw-r--r--Assets/Scripts/Unit/Components/UnitLensEffect.cs14
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();