3D 中音频源的表示。
AudioSource 附加到 GameObject 上,用于在 3D 环境中播放声音。为了播放 3D 声音,您还需要一个 AudioListener。音频监听器通常附加到您要使用的相机。声音是在 3D 还是 2D 中播放由 AudioImporter 设置决定。
您可以使用 Play、Pause 和 Stop 播放单个音频剪辑。您也可以在播放时使用 volume 属性调整其音量,或者使用 time 进行搜索。多个声音可以使用 PlayOneShot 在一个 AudioSource 上播放。您可以使用 PlayClipAtPoint 在 3D 空间中的静态位置播放剪辑。
其他资源:AudioListener、AudioClip、AudioSource 组件。
//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,取消静音将恢复原始音量。 |
outputAudioMixerGroup | AudioSource 应将其信号路由到的目标组。 |
panStereo | 以立体声方式(左或右)播放声音。这仅适用于单声道或立体声声音。 |
pitch | 音频源的音调。 |
playOnAwake | 如果设置为 true,则音频源将在唤醒时自动开始播放。 |
priority | 设置 AudioSource 的优先级。 |
resource | 要播放的默认 AudioResource。 |
reverbZoneMix | AudioSource 的信号混合到与混响区域相关的全局混响的程度。 |
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 == | 比较两个对象引用,查看它们是否引用同一个对象。 |