CompositeXffect.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using UnityEngine;
  5. namespace Xft
  6. {
  7. public class CompositeXffect : MonoBehaviour
  8. {
  9. private void Awake()
  10. {
  11. this.Initialize();
  12. }
  13. public void Initialize()
  14. {
  15. IEnumerator enumerator = base.transform.GetEnumerator();
  16. try
  17. {
  18. while (enumerator.MoveNext())
  19. {
  20. object obj = enumerator.Current;
  21. Transform transform = (Transform)obj;
  22. XffectComponent component = transform.GetComponent<XffectComponent>();
  23. if (component == null)
  24. {
  25. XffectCache component2 = transform.GetComponent<XffectCache>();
  26. if (component2 != null)
  27. {
  28. component2.Init();
  29. }
  30. }
  31. else
  32. {
  33. component.Initialize();
  34. this.XffectList.Add(component);
  35. }
  36. }
  37. }
  38. finally
  39. {
  40. IDisposable disposable;
  41. if ((disposable = (enumerator as IDisposable)) != null)
  42. {
  43. disposable.Dispose();
  44. }
  45. }
  46. }
  47. public void Active()
  48. {
  49. base.gameObject.SetActive(true);
  50. foreach (XffectComponent xffectComponent in this.XffectList)
  51. {
  52. xffectComponent.Active();
  53. }
  54. }
  55. public void DeActive()
  56. {
  57. base.gameObject.SetActive(false);
  58. foreach (XffectComponent xffectComponent in this.XffectList)
  59. {
  60. xffectComponent.DeActive();
  61. }
  62. }
  63. private List<XffectComponent> XffectList = new List<XffectComponent>();
  64. }
  65. }