版本:Unity 6 (6000.0)
语言英语
  • C#

AudioSource

UnityEngine 中的类

/

继承自:Behaviour

/

实现于:UnityEngine.AudioModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们不能接受所有提交的建议,但我们会阅读用户提出的每一个建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

描述

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 && 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 && 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允许 AudioSource 即使 AudioListener.pause 设置为 true 也能播放。这对于菜单元素声音或暂停菜单中的背景音乐很有用。
ignoreListenerVolume这使得音频源不考虑音频监听器的音量。
isPlaying剪辑现在正在播放吗(只读)?
isVirtual如果 AudioSource 播放的所有声音,例如由 Play() 或 playOnAwake 启动的主声音和一次性声音,都被音频系统剔除,则为 true。
loop检查音频剪辑是否循环。
maxDistance(对数衰减)MaxDistance 是声音停止衰减的距离。
minDistance在 Min 距离内,AudioSource 将停止增大音量。
mute取消/静音 AudioSource。静音将音量设置为 0,取消静音将恢复原始音量。
outputAudioMixerGroupAudioSource 应将其信号路由到的目标组。
panStereo以立体声方式(左或右)播放声音。这仅适用于单声道或立体声声音。
pitch音频源的音调。
playOnAwake如果设置为 true,则音频源将在唤醒时自动开始播放。
priority设置 AudioSource 的优先级。
resource要播放的默认 AudioResource。
reverbZoneMixAudioSource 的信号混合到与混响区域相关的全局混响的程度。
rolloffMode设置/获取 AudioSource 在距离上衰减的方式。
spatialBlend设置此 AudioSource 受 3D 空间化计算(衰减、多普勒等)影响的程度。0.0 使声音完全 2D,1.0 使声音完全 3D。
spatialize启用或禁用空间化。
spatializePostEffects确定空间化器效果是在效果过滤器之前还是之后插入。
spread在扬声器空间中设置 3d 立体声或多声道声音的扩散角(以度为单位)。
time以秒为单位的回放位置。
timeSamples以 PCM 采样为单位的回放位置。
velocityUpdateMode音频源应该在固定更新还是动态更新中更新。
volume音频源的音量(0.0 到 1.0)。

公共方法

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

静态方法

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

继承的成员

属性

enabled已启用的行为会更新,已禁用的行为不会更新。
isActiveAndEnabled报告 GameObject 及其关联的行为是否处于活动状态且已启用。
gameObject此组件附加到的游戏对象。组件始终附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags对象是否应该隐藏、与场景一起保存或由用户修改?
name对象的名称。

公共方法

BroadcastMessage调用此游戏对象或其任何子对象中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTag将 GameObject 的标签与定义的标签进行比较。
GetComponent获取与指定组件位于同一 GameObject 上的类型为 T 的组件的引用。
GetComponentInChildren获取与指定组件位于同一 GameObject 上或 GameObject 的任何子级上的类型为 T 的组件的引用。
GetComponentIndex获取组件在其父 GameObject 上的索引。
GetComponentInParent获取与指定组件位于同一 GameObject 上或 GameObject 的任何父级上的类型为 T 的组件的引用。
GetComponents获取与指定组件位于同一 GameObject 上的类型为 T 的所有组件的引用。
GetComponentsInChildren获取与指定组件位于同一 GameObject 上或 GameObject 的任何子级上的类型为 T 的所有组件的引用。
GetComponentsInParent获取与指定组件位于同一 GameObject 上或 GameObject 的任何父级上的类型为 T 的所有组件的引用。
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象和行为的每个祖先中的每个 MonoBehaviour 上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceID获取对象的实例 ID。
ToString返回对象的名称。

静态方法

Destroy删除 GameObject、组件或资产。
DestroyImmediate立即销毁对象 obj。强烈建议您使用 Destroy 代替。
DontDestroyOnLoad加载新场景时不要销毁目标对象。
FindAnyObjectByType检索类型为 type 的任何活动加载对象。
FindFirstObjectByType检索类型为 type 的第一个活动加载对象。
FindObjectsByType检索类型为 type 的所有加载对象的列表。
Instantiate克隆对象 original 并返回克隆。
InstantiateAsync捕获原始对象(必须与某个 GameObject 相关联)的快照,并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,查看它们是否引用同一个对象。