TimeLineAudioEventLogic.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Core.Audio;
  2. using Fort23.UTool;
  3. using Utility.CustomizeTimeLogic.FxLogic.TimeLineEvent;
  4. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
  5. #if !COMBAT_SERVER
  6. using UnityEngine.EventSystems;
  7. using CombatLibrary.CombatLibrary.CombatCore.Utility;
  8. using UnityEngine;
  9. #endif
  10. namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
  11. {
  12. public class TimeLineAudioEventLogic : TimeLineEventLogicBasic
  13. {
  14. private AudioSourcePool audioSourcePool;
  15. protected override void ProSetCombatInfo()
  16. {
  17. }
  18. protected override async void ProEnter()
  19. {
  20. #if !COMBAT_SERVER
  21. TimeLineAudioSeralization timeLineAudioSeralization =
  22. mTimeLineAssetSerialization as TimeLineAudioSeralization;
  23. if (!string.IsNullOrEmpty(timeLineAudioSeralization.audioName))
  24. {
  25. ITimeLineAudio iTimeLineSkillStart =
  26. TimeLineSingletonEventManager.Instance.GetTimeLine<ITimeLineAudio>();
  27. if (iTimeLineSkillStart != null)
  28. {
  29. AudioSourcePool audioSourcePool = await iTimeLineSkillStart.PlayAudio(
  30. timeLineAudioSeralization.audioName,
  31. timeLineAudioSeralization.isLoop);
  32. if (timeLineAudioSeralization.isLoop)
  33. {
  34. this.audioSourcePool = audioSourcePool;
  35. }
  36. if (audioSourcePool != null)
  37. {
  38. audioSourcePool.TimeLineAudioEventLogic = this;
  39. }
  40. }
  41. }
  42. #endif
  43. }
  44. protected override void ProLeave()
  45. {
  46. }
  47. protected override void ProTimeUpdate()
  48. {
  49. }
  50. protected override void ProBreakTimeLine()
  51. {
  52. if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)
  53. {
  54. this.audioSourcePool.Finish();
  55. }
  56. }
  57. protected override void ProDispose()
  58. {
  59. if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)
  60. {
  61. this.audioSourcePool.Finish();
  62. }
  63. }
  64. }
  65. }