Version: 2020.3

AudioSource

class in UnityEngine

/

继承自:Behaviour

切换到手册

描述

音频源在 3D 中的表示。

AudioSource 附加到 GameObject,用于在 3D 环境中播放声音。 要播放 3D 声音,您还需要一个 AudioListener。 音频监听器通常附加到您要使用的摄像机。 声音以 3D 还是 2D 方式播放由 AudioImporter 设置决定。

您可以使用 PlayPauseStop 播放单个音频剪辑。 也可以使用 volume 属性在播放时调整其音量,或使用 time 进行搜寻。 使用 PlayOneShot 可以在一个 AudioSource 上播放多个声音。 使用 PlayClipAtPoint 可以在 3D 空间中的某个静态位置播放剪辑。

另请参阅:AudioListenerAudioClipAudioSource 组件

//This script allows you to toggle music to play and stop.
//Assign an AudioSource to a GameObject and attach an Audio Clip in the Audio Source. Attach this script to the GameObject.

using UnityEngine;

public class Example : MonoBehaviour { AudioSource m_MyAudioSource;

//Play the music bool m_Play; //Detect when you use the toggle, ensures music isn’t played multiple times bool m_ToggleChange;

void Start() { //Fetch the AudioSource from the GameObject m_MyAudioSource = GetComponent<AudioSource>(); //Ensure the toggle is set to true for the music to play at start-up m_Play = true; }

void Update() { //Check to see if you just set the toggle to positive if (m_Play == true &amp;&amp; m_ToggleChange == true) { //Play the audio you attach to the AudioSource component m_MyAudioSource.Play(); //Ensure audio doesn’t play more than once m_ToggleChange = false; } //Check if you just set the toggle to false if (m_Play == false &amp;&amp; m_ToggleChange == true) { //Stop the audio m_MyAudioSource.Stop(); //Ensure audio doesn’t play more than once m_ToggleChange = false; } }

void OnGUI() { //Switch this toggle to activate and deactivate the parent GameObject m_Play = GUI.Toggle(new Rect(10, 10, 100, 30), m_Play, "Play Music");

//Detect if there is a change with the toggle if (GUI.changed) { //Change to true to show that there was just a change in the toggle state m_ToggleChange = true; } } }

变量

bypassEffects直通效果(从滤波器组件或全局监听器滤波器应用)。
bypassListenerEffects如果设置,则不将 AudioListener 上的全局效果应用于 AudioSource 生成的音频信号。不适用于 AudioSource 正在混合器组中播放的情况。
bypassReverbZones如果设置,则不将来自 AudioSource 的信号路由到与混响区关联的全局混响。
clip要播放的默认 AudioClip。
dopplerLevel设置该 AudioSource 的多普勒缩放。
gamepadSpeakerOutputType获取或设置音频源的游戏手柄音频输出类型。
ignoreListenerPause即使 AudioListener.pause 设置为 true,也允许 AudioSource 播放。这对于暂停菜单中的菜单元素声音或背景音乐很有用。
ignoreListenerVolume这使得音频源不考虑音频监听器的音量。
isPlaying当前正在播放该 clip 吗?(只读)
isVirtual如果 AudioSource 播放的所有声音(由 Play() 或 playOnAwake 以及单次播放启动的主声音)都被音频系统剔除,则为 true。
loop是否循环播放该音频剪辑?
maxDistance(对数衰减)MaxDistance 为声音停止衰减的距离。
minDistance在最小距离内,AudioSource 将停止增大音量。
mute使 AudioSource 静音/取消静音。静音时将音量设置为 0,取消静音则恢复原来的音量。
outputAudioMixerGroupAudioSource 应将其信号路由到的目标组。
panStereo以立体声方式(左声道或右声道)平移正在播放的声音。仅适用于单声道或立体声。
pitch音频源的音高。
playOnAwake如果设置为 true,音频源将在唤醒时自动开始播放。
priority设置 AudioSource 的优先级。
reverbZoneMix将来自 AudioSource 的信号混合到与混响区关联的全局混响中的量。
rolloffMode设置/获取 AudioSource 随距离衰减的方式。
spatialBlend设置 3D 空间化计算(衰减、多普勒效应等)对该 AudioSource 的影响程度。0.0 使声音变成全 2D 效果,1.0 使其变成全 3D。
spatialize启用或禁用空间化。
spatializePostEffects确定空间音响效果是在效果滤波器前还是后插入的。
spread设置扬声器空间中 3D 立体声或多声道声音的扩散角度(以度为单位)。
time播放位置(以秒为单位)。
timeSamplesPCM 样本中的播放位置。
velocityUpdateMode应以固定还是动态更新方式更新音频源。
volume音频源的音量(0.0 到 1.0)。

公共函数

DisableGamepadOutput禁用音频源的游戏手柄音频输出。
GetAmbisonicDecoderFloat读取附加到 AudioSource 的自定义立体混响声解码器效果的用户定义参数。
GetCustomCurve获取给定 AudioSourceCurveType 的当前自定义曲线。
GetOutputData提供当前播放源的输出数据块。
GetSpatializerFloat读取附加到 AudioSource 的自定义空间音响效果的用户定义参数。
GetSpectrumData提供当前播放音频源的频谱数据块。
Pause暂停播放 clip。
Play播放 clip。
PlayDelayed按照指定的延时(以秒为单位)播放 clip。建议用户使用该函数代替旧的 Play(delay) 函数,Play(delay) 函数接受以样本(参考采样率为 44.1 kHz)数为单位指定的延时作为参数。
PlayOneShot播放 AudioClip,并根据 volumeScale 调整 AudioSource 音量。
PlayOnGamepad允许通过特定游戏手柄播放音频源。
PlayScheduled在 AudioSettings.dspTime 读取的绝对时间轴上的特定时间播放 clip。
SetAmbisonicDecoderFloat设置附加到 AudioSource 的自定义立体混响声解码器效果的用户定义参数。
SetCustomCurve设置给定 AudioSourceCurveType 的自定义曲线。
SetScheduledEndTime更改某个已计划播放的声音将结束的时间。注意,根据时间安排,并非所有重新计划的请求都能得到满足。
SetScheduledStartTime更改某个已计划播放的声音将开始的时间。
SetSpatializerFloat设置附加到 AudioSource 的自定义空间音响效果的用户定义参数。
Stop停止播放 clip。
UnPause恢复播放该 AudioSource。

静态函数

GamepadSpeakerSupportsOutputType检查平台是否在游戏手柄上支持音频输出类型。
PlayClipAtPoint在世界空间中的给定位置播放 AudioClip。

继承的成员

变量

enabled启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。
isActiveAndEnabled是否已激活并启用 Behaviour?
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。

公共函数

BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag此游戏对象是否使用 tag 进行了标记?
GetComponentReturns the component of Type type if the GameObject has one attached, null if it doesn't. Will also return disabled components.
GetComponentInChildren使用深度首次搜索返回 GameObject 或其任何子项中类型为 type 的组件。
GetComponentInParent返回 GameObject 或其任何父项中类型为 type 的组件。
GetComponents返回 GameObject 中类型为 type 的所有组件。
GetComponentsInChildrenReturns all components of Type type in the GameObject or any of its children. Works recursively.
GetComponentsInParent返回 GameObject 或其任何父项中类型为 type 的所有组件。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。