AudioMgr.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. /* 音频管理者 */
  5. public class AudioMgr : MonoBehaviour
  6. {
  7. private AudioSource audioSource;
  8. public static AudioMgr ins;
  9. public static void Init()
  10. {
  11. if (!ins) {
  12. GameObject audioMgr = new GameObject("AudioMgr");
  13. ins = audioMgr.AddComponent<AudioMgr>();
  14. DontDestroyOnLoad(audioMgr);
  15. }
  16. }
  17. void Awake() {
  18. this.audioSource = this.gameObject.AddComponent<AudioSource>();
  19. }
  20. public void Play(string path, AudioSource audioSource) {
  21. AudioClip audioClip = Resources.Load<AudioClip>(path);
  22. if (audioSource == null) {
  23. audioSource = this.audioSource;
  24. }
  25. audioSource.clip = audioClip;
  26. if (UserSettings.ins.openEffect) {
  27. audioSource.Play();
  28. }
  29. }
  30. public static AudioSource GetAudioSource(GameObject target) {
  31. AudioSource audioSource = target.GetComponent<AudioSource>();
  32. if (audioSource == null) {
  33. audioSource = target.AddComponent<AudioSource>();
  34. }
  35. return audioSource;
  36. }
  37. public void PlayShoot(AudioSource audioSource) {
  38. this.Play("Audios/shoot", audioSource);
  39. }
  40. public void PlayHit(AudioSource audioSource) {
  41. this.Play("Audios/hit", audioSource);
  42. }
  43. public void PlayCheer(bool cheer) {
  44. this.Play("Audios/" + (cheer ? "喝彩" : "喝倒彩"), null);
  45. }
  46. public void PlayBtn() {
  47. this.Play("Audios/btn", null);
  48. }
  49. public void PlayWin() {
  50. this.Play("Audios/win", null);
  51. }
  52. public void PlayArrowEnter() {
  53. this.Play("Audios/Animal/arrow_enter", null);
  54. }
  55. public void PlayAnimalEffect(string name, AudioSource audioSource) {
  56. this.Play("Audios/Animal/" + name, audioSource);
  57. }
  58. }