SoundAgentHelperBase.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. using GameFramework.Sound;
  8. using System;
  9. using UnityEngine;
  10. using UnityEngine.Audio;
  11. namespace UnityGameFramework.Runtime
  12. {
  13. /// <summary>
  14. /// 声音代理辅助器基类。
  15. /// </summary>
  16. public abstract class SoundAgentHelperBase : MonoBehaviour, ISoundAgentHelper
  17. {
  18. /// <summary>
  19. /// 获取当前是否正在播放。
  20. /// </summary>
  21. public abstract bool IsPlaying
  22. {
  23. get;
  24. }
  25. /// <summary>
  26. /// 获取声音长度。
  27. /// </summary>
  28. public abstract float Length
  29. {
  30. get;
  31. }
  32. /// <summary>
  33. /// 获取或设置播放位置。
  34. /// </summary>
  35. public abstract float Time
  36. {
  37. get;
  38. set;
  39. }
  40. /// <summary>
  41. /// 获取或设置是否静音。
  42. /// </summary>
  43. public abstract bool Mute
  44. {
  45. get;
  46. set;
  47. }
  48. /// <summary>
  49. /// 获取或设置是否循环播放。
  50. /// </summary>
  51. public abstract bool Loop
  52. {
  53. get;
  54. set;
  55. }
  56. /// <summary>
  57. /// 获取或设置声音优先级。
  58. /// </summary>
  59. public abstract int Priority
  60. {
  61. get;
  62. set;
  63. }
  64. /// <summary>
  65. /// 获取或设置音量大小。
  66. /// </summary>
  67. public abstract float Volume
  68. {
  69. get;
  70. set;
  71. }
  72. /// <summary>
  73. /// 获取或设置声音音调。
  74. /// </summary>
  75. public abstract float Pitch
  76. {
  77. get;
  78. set;
  79. }
  80. /// <summary>
  81. /// 获取或设置声音立体声声相。
  82. /// </summary>
  83. public abstract float PanStereo
  84. {
  85. get;
  86. set;
  87. }
  88. /// <summary>
  89. /// 获取或设置声音空间混合量。
  90. /// </summary>
  91. public abstract float SpatialBlend
  92. {
  93. get;
  94. set;
  95. }
  96. /// <summary>
  97. /// 获取或设置声音最大距离。
  98. /// </summary>
  99. public abstract float MaxDistance
  100. {
  101. get;
  102. set;
  103. }
  104. /// <summary>
  105. /// 获取或设置声音多普勒等级。
  106. /// </summary>
  107. public abstract float DopplerLevel
  108. {
  109. get;
  110. set;
  111. }
  112. /// <summary>
  113. /// 获取或设置声音代理辅助器所在的混音组。
  114. /// </summary>
  115. public abstract AudioMixerGroup AudioMixerGroup
  116. {
  117. get;
  118. set;
  119. }
  120. /// <summary>
  121. /// 重置声音代理事件。
  122. /// </summary>
  123. public abstract event EventHandler<ResetSoundAgentEventArgs> ResetSoundAgent;
  124. /// <summary>
  125. /// 播放声音。
  126. /// </summary>
  127. /// <param name="fadeInSeconds">声音淡入时间,以秒为单位。</param>
  128. public abstract void Play(float fadeInSeconds);
  129. /// <summary>
  130. /// 停止播放声音。
  131. /// </summary>
  132. /// <param name="fadeOutSeconds">声音淡出时间,以秒为单位。</param>
  133. public abstract void Stop(float fadeOutSeconds);
  134. /// <summary>
  135. /// 暂停播放声音。
  136. /// </summary>
  137. /// <param name="fadeOutSeconds">声音淡出时间,以秒为单位。</param>
  138. public abstract void Pause(float fadeOutSeconds);
  139. /// <summary>
  140. /// 恢复播放声音。
  141. /// </summary>
  142. /// <param name="fadeInSeconds">声音淡入时间,以秒为单位。</param>
  143. public abstract void Resume(float fadeInSeconds);
  144. /// <summary>
  145. /// 重置声音代理辅助器。
  146. /// </summary>
  147. public abstract void Reset();
  148. /// <summary>
  149. /// 设置声音资源。
  150. /// </summary>
  151. /// <param name="soundAsset">声音资源。</param>
  152. /// <returns>是否设置声音资源成功。</returns>
  153. public abstract bool SetSoundAsset(object soundAsset);
  154. /// <summary>
  155. /// 设置声音绑定的实体。
  156. /// </summary>
  157. /// <param name="bindingEntity">声音绑定的实体。</param>
  158. public abstract void SetBindingEntity(Entity bindingEntity);
  159. /// <summary>
  160. /// 设置声音所在的世界坐标。
  161. /// </summary>
  162. /// <param name="worldPosition">声音所在的世界坐标。</param>
  163. public abstract void SetWorldPosition(Vector3 worldPosition);
  164. }
  165. }