AudioMgr.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class AudioMgr : MonoBehaviour
  5. {
  6. private AudioSource audioSource;
  7. public static AudioMgr ins;
  8. public static void init()
  9. {
  10. if (GameObject.Find("AudioMgr") == null) {
  11. GameObject audioMgr = new GameObject("AudioMgr");
  12. audioMgr.AddComponent<AudioSource>();
  13. audioMgr.AddComponent<AudioMgr>();
  14. DontDestroyOnLoad(audioMgr);
  15. }
  16. }
  17. void Start() {
  18. ins = this;
  19. this.audioSource = this.GetComponent<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. audioSource.Play();
  28. }
  29. public static AudioSource GetAudioSource(GameObject target) {
  30. AudioSource audioSource = target.GetComponent<AudioSource>();
  31. if (audioSource == null) {
  32. audioSource = target.AddComponent<AudioSource>();
  33. }
  34. return audioSource;
  35. }
  36. public void PlayShoot(AudioSource audioSource) {
  37. this.Play("Audios/shoot", audioSource);
  38. }
  39. public void PlayHit(AudioSource audioSource) {
  40. this.Play("Audios/hit", audioSource);
  41. }
  42. public void PlayCheer(bool cheer) {
  43. this.Play("Audios/" + (cheer ? "喝彩" : "喝倒彩"), null);
  44. }
  45. public void PlayBtn() {
  46. this.Play("Audios/btn", null);
  47. }
  48. public void PlayWin() {
  49. this.Play("Audios/win", null);
  50. }
  51. }