AudioMgr.cs 1.7 KB

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