ConvertEffect.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class ConvertEffect : MonoSingleton<ConvertEffect>
  5. {
  6. public enum convertEffectType
  7. {
  8. Default,
  9. White,
  10. Black,
  11. WhiteToBlack,
  12. BlackToWhite,
  13. WhiteToLucency,
  14. BlackToLucency,
  15. LucencyToWhite,
  16. LucencyToBlack,
  17. Transmitimg_in,
  18. Transmitimg_out,
  19. Transmitimg_1_out,
  20. Dying, //濒死
  21. }
  22. private Animator anim;
  23. private AniEvent.PlayFinishCallback finishCallback;
  24. private AniEvent animEvent;
  25. public bool isPlay;
  26. /// <summary>
  27. /// 初始化
  28. /// </summary>
  29. private void Init()
  30. {
  31. if (anim == null)
  32. {
  33. anim = GameObject.Find("ForeverUI/ConvertEffect").GetComponent<Animator>();
  34. anim.gameObject.SetActive(true);
  35. }
  36. if (animEvent == null)
  37. {
  38. animEvent = GameObject.Find("ForeverUI/ConvertEffect").GetComponent<AniEvent>();
  39. }
  40. }
  41. public void PlayEffect(convertEffectType effectType, AniEvent.PlayFinishCallback cb)
  42. {
  43. Init();
  44. string animName = "";
  45. switch (effectType)
  46. {
  47. case convertEffectType.Black:
  48. animName = "Black";
  49. break;
  50. case convertEffectType.Default:
  51. animName = "Default";
  52. break;
  53. case convertEffectType.White:
  54. animName = "White";
  55. break;
  56. case convertEffectType.WhiteToBlack:
  57. animName = "WhiteToBlack";
  58. break;
  59. case convertEffectType.BlackToWhite:
  60. animName = "BlackToWhite";
  61. break;
  62. case convertEffectType.BlackToLucency:
  63. animName = "BlackToLucency";
  64. break;
  65. case convertEffectType.WhiteToLucency:
  66. animName = "WhiteToLucency";
  67. break;
  68. case convertEffectType.LucencyToBlack:
  69. animName = "LucencyToBlack";
  70. break;
  71. case convertEffectType.LucencyToWhite:
  72. animName = "LucencyToWhite";
  73. break;
  74. case convertEffectType.Transmitimg_in:
  75. animName = "Transmiting_in";
  76. break;
  77. case convertEffectType.Transmitimg_out:
  78. animName = "Transmitimg_out";
  79. break;
  80. case convertEffectType.Transmitimg_1_out:
  81. animName = "Transmitimg_1_out";
  82. break;
  83. case convertEffectType.Dying:
  84. animName = "dying";
  85. break;
  86. }
  87. finishCallback = cb;
  88. if (finishCallback == null)
  89. {
  90. finishCallback = (obj) => { anim.gameObject.SetActive(false); };
  91. }
  92. animEvent.closecb = finishCallback;
  93. anim.Play(animName);
  94. }
  95. public void PlayEffect(string animName, AniEvent.PlayFinishCallback cb)
  96. {
  97. Init();
  98. finishCallback = cb;
  99. animEvent.closecb = finishCallback;
  100. anim.Play(animName);
  101. }
  102. }