EffectDrawObject.cs 970 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using UnityEngine;
  2. namespace WXB
  3. {
  4. [ExecuteInEditMode]
  5. public class EffectDrawObjec : DrawObject
  6. {
  7. protected IEffect[] m_Effects = new IEffect[2];
  8. public override void UpdateSelf(float deltaTime)
  9. {
  10. for (int i = 0; i < m_Effects.Length; ++i)
  11. {
  12. if (m_Effects[i] == null)
  13. continue;
  14. m_Effects[i].UpdateEffect(this, deltaTime);
  15. }
  16. }
  17. // 某个位置是否开启
  18. protected bool GetOpen(int index)
  19. {
  20. return m_Effects[index] != null;
  21. }
  22. protected void SetOpen<T>(int index, bool value) where T : IEffect, new()
  23. {
  24. if (GetOpen(index) == value)
  25. return ;
  26. if (value)
  27. {
  28. m_Effects[index] = new T();
  29. }
  30. else
  31. {
  32. m_Effects[index] = null;
  33. }
  34. }
  35. }
  36. }