Effect.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 Jiang Yin. All rights reserved.
  4. // Homepage: https://gameframework.cn/
  5. // Feedback: mailto:ellan@gameframework.cn
  6. //------------------------------------------------------------
  7. using UnityEngine;
  8. using UnityGameFramework.Runtime;
  9. namespace MetaClient
  10. {
  11. /// <summary>
  12. /// 特效类。
  13. /// </summary>
  14. public class Effect : Entity
  15. {
  16. [SerializeField]
  17. private EffectData m_EffectData = null;
  18. private float m_ElapseSeconds = 0f;
  19. #if UNITY_2017_3_OR_NEWER
  20. protected override void OnShow(object userData)
  21. #else
  22. protected internal override void OnShow(object userData)
  23. #endif
  24. {
  25. base.OnShow(userData);
  26. m_EffectData = userData as EffectData;
  27. if (m_EffectData == null)
  28. {
  29. Log.Error("Effect data is invalid.");
  30. return;
  31. }
  32. m_ElapseSeconds = 0f;
  33. }
  34. #if UNITY_2017_3_OR_NEWER
  35. protected override void OnUpdate(float elapseSeconds, float realElapseSeconds)
  36. #else
  37. protected internal override void OnUpdate(float elapseSeconds, float realElapseSeconds)
  38. #endif
  39. {
  40. base.OnUpdate(elapseSeconds, realElapseSeconds);
  41. m_ElapseSeconds += elapseSeconds;
  42. if (m_ElapseSeconds >= m_EffectData.KeepTime)
  43. {
  44. GameEntry.Entity.HideEntity(this);
  45. }
  46. }
  47. }
  48. }