| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | using Core.Audio;using Fort23.UTool;using Utility.CustomizeTimeLogic.FxLogic.TimeLineEvent;using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;#if !COMBAT_SERVERusing UnityEngine.EventSystems;using CombatLibrary.CombatLibrary.CombatCore.Utility;using UnityEngine;#endifnamespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic{    public class TimeLineAudioEventLogic : TimeLineEventLogicBasic    {        private AudioSourcePool audioSourcePool;        protected override void ProSetCombatInfo()        {        }        protected override async void ProEnter()        {#if !COMBAT_SERVER            TimeLineAudioSeralization timeLineAudioSeralization =                mTimeLineAssetSerialization as TimeLineAudioSeralization;            if (!string.IsNullOrEmpty(timeLineAudioSeralization.audioName))            {                ITimeLineAudio iTimeLineSkillStart =                    TimeLineSingletonEventManager.Instance.GetTimeLine<ITimeLineAudio>();                if (iTimeLineSkillStart != null)                {                    AudioSourcePool audioSourcePool = await iTimeLineSkillStart.PlayAudio(                        timeLineAudioSeralization.audioName,                        timeLineAudioSeralization.isLoop);                    if (timeLineAudioSeralization.isLoop)                    {                        this.audioSourcePool = audioSourcePool;                    }                    if (audioSourcePool != null)                    {                        audioSourcePool.TimeLineAudioEventLogic = this;                    }                }            }#endif        }        protected override void ProLeave()        {        }        public override bool IsFinish()        {            if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)            {                return false;            }            return base.IsFinish();        }        protected override void ProTimeUpdate()        {        }        protected override void ProBreakTimeLine()        {            if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)            {                this.audioSourcePool.Finish();            }            audioSourcePool = null;        }        public override void CloseLoopFx()        {            if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)            {                this.audioSourcePool.Finish();            }            audioSourcePool = null;        }        protected override void ProDispose()        {            if (this.audioSourcePool != null && this.audioSourcePool.TimeLineAudioEventLogic == this)            {                this.audioSourcePool.Finish();            }            audioSourcePool = null;        }    }}
 |