AudioMgr.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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 (GameObject.Find("AudioMgr") == null) {
  12. GameObject audioMgr = new GameObject("AudioMgr");
  13. audioMgr.AddComponent<AudioMgr>();
  14. DontDestroyOnLoad(audioMgr);
  15. }
  16. }
  17. void Start() {
  18. ins = this;
  19. this.audioSource = this.gameObject.AddComponent<AudioSource>();
  20. }
  21. private void Play(string path, AudioSource audioSource) {
  22. AudioClip audioClip = Resources.Load<AudioClip>(path);
  23. if (audioSource == null) {
  24. audioSource = this.audioSource;
  25. }
  26. audioSource.clip = audioClip;
  27. if (UserSettings.ins.openEffect) {
  28. audioSource.Play();
  29. }
  30. }
  31. public static AudioSource GetAudioSource(GameObject target) {
  32. AudioSource audioSource = target.GetComponent<AudioSource>();
  33. if (audioSource == null) {
  34. audioSource = target.AddComponent<AudioSource>();
  35. }
  36. return audioSource;
  37. }
  38. public void PlayShoot(AudioSource audioSource) {
  39. this.Play("Audios/shoot", audioSource);
  40. }
  41. public void PlayHit(AudioSource audioSource) {
  42. this.Play("Audios/hit", audioSource);
  43. }
  44. public void PlayCheer(bool cheer) {
  45. //this.Play("Audios/" + (cheer ? "喝彩" : "喝倒彩"), null);
  46. }
  47. public void PlayBtn() {
  48. this.Play("Audios/btn", null);
  49. }
  50. public void PlayWin() {
  51. this.Play("Audios/win", null);
  52. }
  53. public void PlayArrowEnter() {
  54. this.Play("Audios/Animal/arrow_enter", null);
  55. }
  56. public void PlayAnimalEffect(string name, AudioSource audioSource) {
  57. this.Play("Audios/Animal/" + name, audioSource);
  58. }
  59. }