//------------------------------------------------------------
// 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);
}
}