您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 

80 行
1.6 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using CIGEnums;
  4. using SUISSEngine;
  5. using UnityEngine;
  6. public sealed class CIGAudioManager : AudioManager<CIGAudioManager>
  7. {
  8. public void PlayClip(Clip clip)
  9. {
  10. this.PlayClip(clip, 1f);
  11. }
  12. public void PlayClip(Clip clip, bool playOneAtATime)
  13. {
  14. this.PlayClip(clip, 1f, playOneAtATime);
  15. }
  16. public void PlayClip(Clip clip, float volumeScale)
  17. {
  18. this.PlayClip(clip, volumeScale, false);
  19. }
  20. public void PlayClip(Clip clip, float volumeScale, bool playOneAtATime)
  21. {
  22. CIGAudioManager.AudioClipSettings audioClipSettings = this._audioClips.Find((CIGAudioManager.AudioClipSettings x) => x.Clip == clip);
  23. if (audioClipSettings == null)
  24. {
  25. UnityEngine.Debug.LogWarningFormat("Missing AudioClipSettings for {0}", new object[]
  26. {
  27. clip
  28. });
  29. return;
  30. }
  31. base.PlayClip(audioClipSettings.AudioClip, volumeScale, playOneAtATime);
  32. }
  33. public void SetMusic(AudioClip music)
  34. {
  35. if (this._audioSource.clip != music)
  36. {
  37. this._audioSource.clip = music;
  38. }
  39. if (!this._audioSource.isPlaying && Singleton<CIGSettings>.Instance.MusicEnabled)
  40. {
  41. this._audioSource.loop = true;
  42. this._audioSource.Play();
  43. }
  44. }
  45. [SerializeField]
  46. private List<CIGAudioManager.AudioClipSettings> _audioClips;
  47. [Serializable]
  48. private class AudioClipSettings
  49. {
  50. public Clip Clip
  51. {
  52. get
  53. {
  54. return this._clip;
  55. }
  56. }
  57. public AudioClip AudioClip
  58. {
  59. get
  60. {
  61. return this._audioClip;
  62. }
  63. }
  64. [SerializeField]
  65. private Clip _clip;
  66. [SerializeField]
  67. private AudioClip _audioClip;
  68. }
  69. }