AudioProxy.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. public class AudioItem
  5. {
  6. /// <summary>
  7. /// 请求播放的序号
  8. /// </summary>
  9. private ulong mReqOrder;
  10. /// <summary>
  11. /// 请求播放的声音名字
  12. /// </summary>
  13. public string clipName;
  14. /// <summary>
  15. /// 请求播放的声音所在的报名
  16. /// </summary>
  17. public string clipPackageName;
  18. public bool repeat;
  19. public ulong ReqOrder
  20. {
  21. get {
  22. return mReqOrder;
  23. }
  24. }
  25. public AudioItem(string clipName, string packageName, bool repeat)
  26. {
  27. mReqOrder = AudioProxy.s_AudioAttackOrder++;
  28. this.clipName = clipName;
  29. this.clipPackageName = packageName;
  30. this.repeat = repeat;
  31. }
  32. }
  33. public class AudioProxy
  34. {
  35. public static ulong s_AudioAttackOrder = 1;
  36. static AudioProxy instance;
  37. public static AudioProxy Instance
  38. {
  39. get
  40. {
  41. if (instance == null)
  42. instance = new AudioProxy();
  43. return instance;
  44. }
  45. }
  46. AudioProxy() { }
  47. public List<AudioItem> audioClips = new List<AudioItem>(20);
  48. public List<string> cancelClips = new List<string>(20);
  49. public ulong Add(string clipName, string clipPackageName, bool repeat)
  50. {
  51. AudioItem item = new AudioItem(clipName, clipPackageName, repeat);
  52. audioClips.Add(item);
  53. return item.ReqOrder;
  54. }
  55. public void Cancel(string clipName)
  56. {
  57. cancelClips.Add(clipName);
  58. }
  59. }