Exemplo n.º 1
0
        /// <summary>
        /// 播放世界音效
        /// </summary>
        /// <param name="attachTarget">附加目标</param>
        /// <param name="clip">音乐剪辑</param>
        /// <param name="isLoop">是否循环</param>
        /// <param name="speed">播放速度</param>
        public void PlayWorldSound(GameObject attachTarget, AudioClip clip, bool isLoop = false, float speed = 1)
        {
            if (attachTarget == null || clip == null)
            {
                return;
            }

            if (WorldSources.ContainsKey(attachTarget))
            {
                AudioSource audio = WorldSources[attachTarget];
                audio.DOKill();
                if (audio.isPlaying)
                {
                    audio.Stop();
                }
                audio.clip   = clip;
                audio.loop   = isLoop;
                audio.pitch  = speed;
                audio.volume = WorldVolume;
                audio.Play();
            }
            else
            {
                AudioSource audio = AudioToolkit.AttachAudioSource(attachTarget, WorldPriority, WorldVolume, 1, 1, Mute);
                WorldSources.Add(attachTarget, audio);
                audio.clip  = clip;
                audio.loop  = isLoop;
                audio.pitch = speed;
                audio.Play();
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 初始化助手
 /// </summary>
 public void OnInitialization()
 {
     BackgroundSource      = AudioToolkit.CreateAudioSource("BackgroundSource", Module.transform);
     SingleSource          = AudioToolkit.CreateAudioSource("SingleSource", Module.transform);
     OneShootSource        = AudioToolkit.CreateAudioSource("OneShootSource", Module.transform);
     BackgroundSource.loop = true;
 }
        //提取闲置中的多通道音源
        private AudioSource ExtractIdleMultipleAudioSource()
        {
            for (int i = 0; i < MultipleAudios.Count; i++)
            {
                if (!MultipleAudios[i].isPlaying)
                {
                    return(MultipleAudios[i]);
                }
            }

            AudioSource audio = AudioToolkit.CreateAudioSource("MultipleAudio", MultiplePriority, MultipleVolume, 1, 0, Mute, Module.transform);

            MultipleAudios.Add(audio);
            return(audio);
        }
Exemplo n.º 4
0
        internal override void OnInitialization()
        {
            base.OnInitialization();

            _helper = Helper as IAudioHelper;
            _helper.BackgroundAudio = AudioToolkit.CreateAudioSource("BackgroundAudio", BackgroundPriorityDefault, BackgroundVolumeDefault, 1, 0, MuteDefault, transform);
            _helper.SingleAudio     = AudioToolkit.CreateAudioSource("SingleAudio", SinglePriorityDefault, SingleVolumeDefault, 1, 0, MuteDefault, transform);

            Mute = MuteDefault;
            BackgroundPriority = BackgroundPriorityDefault;
            SinglePriority     = SinglePriorityDefault;
            MultiplePriority   = MultiplePriorityDefault;
            WorldPriority      = WorldPriorityDefault;
            BackgroundVolume   = BackgroundVolumeDefault;
            SingleVolume       = SingleVolumeDefault;
            MultipleVolume     = MultipleVolumeDefault;
            WorldVolume        = WorldVolumeDefault;
        }
Exemplo n.º 5
0
 /// <summary>
 /// 播放世界音效
 /// </summary>
 /// <param name="attachTarget">附加目标</param>
 /// <param name="clip">音乐剪辑</param>
 public void PlayWorldSound(GameObject attachTarget, AudioClip clip)
 {
     if (WorldSources.ContainsKey(attachTarget))
     {
         AudioSource audio = WorldSources[attachTarget];
         if (audio.isPlaying)
         {
             audio.Stop();
         }
         audio.clip = clip;
         audio.Play();
     }
     else
     {
         AudioSource audio = AudioToolkit.AttachAudioSource(attachTarget, WorldPriority, WorldVolume, 1, 1, Mute);
         WorldSources.Add(attachTarget, audio);
         audio.clip = clip;
         audio.Play();
     }
 }