• 声音组件
  • AudioSource API
    • 示例:

    声音组件

    AudioListener:音频监听组件。该组件用于接收音频,相当于人的耳朵。

    注意:为场景添加摄像机时,Unity 会自动为摄像机对象添加 AudioListener 组件,由于一个场景中只能有一个该组件,所以需要手动的删除其他组件,使场景中只保留一个该组件。

    AudioSource:

    声源组件。该组件用于播放 AudioClip(音频剪辑)。一个场景中可以有多个该组件。

    属性:

    Play On Awake:唤醒时播放。如果勾选,则声音会在场景启动时开始播放。如果禁用,则需要在脚本中调用 Play() 命令来启动。

    Loop:循环。如果勾选,音频会在结束后循环播放。

    Priority:优先权。确定场景所有的声源之间的优先权(0 代表最重要的优先权,256代表最不重要的,默认值为 128)。

    Volume:音量。

    Pitch:音调。音调控制音频播放的快慢。1 是正常播放速度。

    2D Sound Settings:2D 声音设置。

    注意:这个声音资源是3D音效还是2D音效,是由AudioImporter来设置决定的。

    音频格式:.mp3 .ogg .aiff .wav .mod .it .sm3

    AudioSource API

    变量说明
    bypassEffects直通效果(应用过滤器组件或全局监听过滤器)。
    bypassListenerEffects当在AudioListener设置全局效果,将不会应用到由AudioSource生成的音频信号。如果AudioSource正在混合器组播放,将不会被应用。
    bypassReverbZones当设置AudioSource无路由信号到与混响区域关联的全局混响时。
    clip默认要播放的音频剪辑。
    dopplerLevel设置该AudioSource的多普勒大小。
    ignoreListenerPause允许AudioListener.pause属性被设置为true的时候依然允许AudioSource播放。这个通常用于菜单项声音或者背景音乐的暂停功能。
    ignoreListenerVolume这个使得AudioSource不受AudioListener组件音量值的影响。
    isPlaying该音频剪辑是否正播放(只读)?
    loop该音频剪辑是否循环?
    maxDistance(对数衰减)最大距离是一个声音停止衰减的距离。
    minDistance在最小距离内,AudioSource将停止增大音量。
    mute是否静音音频源。Mute是设置音量为0,取消静音是恢复原来的音量。
    outputAudioMixerGroupAudioSource应该路由的目标组信号。
    panStereo以立体声方式声像一个正播放的声音(左或右),这仅用于单声道或立体声。
    pitch音频源的音调。
    playOnAwake如果设置为true,音频源将在唤醒时自动播放。
    priority设置AudioSource的优先级。
    reverbZoneMix信号来自AudioSource将混合到有关混响区全局混响的数量。
    rolloffMode设置/获取AudioSource随着距离怎样衰减。
    spatialBlend设置该音频源由3D空间计算(衰减,多普勒等)被影响多少。0.0使声音完全2D,1.0使声音完全3D。
    spatialize启用或禁用空间化。
    spread设置3d立体声或多声道扬声器的空间的扩散角度。
    time以秒为单位的播放位置。
    timeSamples在PCM取样的播放位置。
    velocityUpdateModeAudioSource是否应该以固定或动态的方式更新?
    volume音频源的音量(0.0 ~ 1.0)。
    公有方法说明
    GetCustomCurve获取给定AudioSourceCurveType类型的当前自定义曲线。
    GetSpatializerFloat读取附加到音频源的自定义空间化效果的一个用户自定义参数。
    Pause暂停正播放的音频剪辑。
    Play播放音频剪辑,带有可选延迟参数。
    PlayDelayed播放一个带有指定延迟的音频剪辑,单位秒。建议用户替代老函数Play(delay),接受指定采样相对于44.1 kHz参考速率作为参数延迟。
    PlayOneShot播放一个音频剪辑,并且通过volumeScale缩放音频源音量。
    PlayScheduled在指定的时间播放剪辑,时间是读取AudioSettings.dspTime绝对时间线。
    SetCustomCurve设置给定AudioSourceCurveType类型的自定义曲线。
    SetScheduledEndTime更改已定时播放的声音将结束的时间。注意取决于时间,不是所有的重定时请求被满足。
    SetScheduledStartTime更改已定时播放的声音将开始的时间。
    SetSpatializerFloat设置一个附加到音频源的自定义空间化效果的一个用户自定义参数。
    Stop停止播放该剪辑。
    UnPause取消该音频源已暂停的播放。
    静态方法说明
    PlayClipAtPoint在世界空间给定位置播放一个音频剪辑。

    示例:

    1. // When the audio component has stopped playing, play otherClip
    2. using UnityEngine;
    3. using System.Collections;
    4. public class ExampleClass : MonoBehaviour {
    5. public AudioClip otherClip;
    6. AudioSource audio;
    7. void Start() {
    8. audio = GetComponent<AudioSource>();
    9. }
    10. void Update() {
    11. if (!audio.isPlaying) {
    12. audio.clip = otherClip;
    13. audio.Play();
    14. }
    15. }
    16. }
    1. using UnityEngine;
    2. using System.Collections;
    3. [RequireComponent(typeof(AudioSource))]
    4. public class ExampleClass : MonoBehaviour {
    5. public AudioClip clip;
    6. void Start() {
    7. AudioSource.PlayClipAtPoint(clip, new Vector3(5, 1, 2));
    8. }
    9. }