//------------------------------------------------------------ // Game Framework // Copyright © 2013-2021 loyalsoft. All rights reserved. // Homepage: http://www.game7000.com/ // Feedback: http://www.game7000.com/ //------------------------------------------------------------ using GameFramework.Sound; using System; using UnityEngine; using UnityEngine.Audio; namespace UnityGameFramework.Runtime { /// /// 声音代理辅助器基类。 /// public abstract class SoundAgentHelperBase : MonoBehaviour, ISoundAgentHelper { /// /// 获取当前是否正在播放。 /// public abstract bool IsPlaying { get; } /// /// 获取声音长度。 /// public abstract float Length { get; } /// /// 获取或设置播放位置。 /// public abstract float Time { get; set; } /// /// 获取或设置是否静音。 /// public abstract bool Mute { get; set; } /// /// 获取或设置是否循环播放。 /// public abstract bool Loop { get; set; } /// /// 获取或设置声音优先级。 /// public abstract int Priority { get; set; } /// /// 获取或设置音量大小。 /// public abstract float Volume { get; set; } /// /// 获取或设置声音音调。 /// public abstract float Pitch { get; set; } /// /// 获取或设置声音立体声声相。 /// public abstract float PanStereo { get; set; } /// /// 获取或设置声音空间混合量。 /// public abstract float SpatialBlend { get; set; } /// /// 获取或设置声音最大距离。 /// public abstract float MaxDistance { get; set; } /// /// 获取或设置声音多普勒等级。 /// public abstract float DopplerLevel { get; set; } /// /// 获取或设置声音代理辅助器所在的混音组。 /// public abstract AudioMixerGroup AudioMixerGroup { get; set; } /// /// 重置声音代理事件。 /// public abstract event EventHandler ResetSoundAgent; /// /// 播放声音。 /// /// 声音淡入时间,以秒为单位。 public abstract void Play(float fadeInSeconds); /// /// 停止播放声音。 /// /// 声音淡出时间,以秒为单位。 public abstract void Stop(float fadeOutSeconds); /// /// 暂停播放声音。 /// /// 声音淡出时间,以秒为单位。 public abstract void Pause(float fadeOutSeconds); /// /// 恢复播放声音。 /// /// 声音淡入时间,以秒为单位。 public abstract void Resume(float fadeInSeconds); /// /// 重置声音代理辅助器。 /// public abstract void Reset(); /// /// 设置声音资源。 /// /// 声音资源。 /// 是否设置声音资源成功。 public abstract bool SetSoundAsset(object soundAsset); /// /// 设置声音绑定的实体。 /// /// 声音绑定的实体。 public abstract void SetBindingEntity(Entity bindingEntity); /// /// 设置声音所在的世界坐标。 /// /// 声音所在的世界坐标。 public abstract void SetWorldPosition(Vector3 worldPosition); } }