A representation of audio sources in 3D.
An AudioSource is attached to a GameObject for playing back sounds in a 3D environment.
In order to play 3D sounds you also need to have a AudioListener.
The audio listener is normally attached to the camera you want to use.
Whether sounds are played in 3D or 2D is determined by AudioImporter settings.
You can play a single audio clip using Play, Pause and Stop.
You can also adjust its volume while playing using the volume property, or seek using time.
Multiple sounds can be played on one AudioSource using PlayOneShot.
You can play a clip at a static position in 3D space using PlayClipAtPoint.
See Also: AudioListener, AudioClip, AudioSource component.
//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 | Bypass effects (Applied from filter components or global listener filters). |
bypassListenerEffects | When set global effects on the AudioListener will not be applied to the audio signal generated by the AudioSource. Does not apply if the AudioSource is playing into a mixer group. |
bypassReverbZones | When set doesn't route the signal from an AudioSource into the global reverb associated with reverb zones. |
clip | The default AudioClip to play. |
dopplerLevel | Sets the Doppler scale for this AudioSource. |
ignoreListenerPause | Allows AudioSource to play even though AudioListener.pause is set to true. This is useful for the menu element sounds or background music in pause menus. |
ignoreListenerVolume | This makes the audio source not take into account the volume of the audio listener. |
isPlaying | Is the clip playing right now (Read Only)? |
isVirtual | True if all sounds played by the AudioSource (main sound started by Play() or playOnAwake as well as one-shots) are culled by the audio system. |
loop | Is the audio clip looping? |
maxDistance | (Logarithmic rolloff) MaxDistance is the distance a sound stops attenuating at. |
minDistance | Within the Min distance the AudioSource will cease to grow louder in volume. |
mute | Un- / Mutes the AudioSource. Mute sets the volume=0, Un-Mute restore the original volume. |
outputAudioMixerGroup | The target group to which the AudioSource should route its signal. |
panStereo | Pans a playing sound in a stereo way (left or right). This only applies to sounds that are Mono or Stereo. |
pitch | The pitch of the audio source. |
playOnAwake | If set to true, the audio source will automatically start playing on awake. |
priority | Sets the priority of the AudioSource. |
reverbZoneMix | The amount by which the signal from the AudioSource will be mixed into the global reverb associated with the Reverb Zones. |
rolloffMode | Sets/Gets how the AudioSource attenuates over distance. |
spatialBlend | Sets how much this AudioSource is affected by 3D spatialisation calculations (attenuation, doppler etc). 0.0 makes the sound full 2D, 1.0 makes it full 3D. |
spatialize | Enables or disables spatialization. |
spatializePostEffects | Determines if the spatializer effect is inserted before or after the effect filters. |
spread | Sets the spread angle (in degrees) of a 3d stereo or multichannel sound in speaker space. |
time | Playback position in seconds. |
timeSamples | Playback position in PCM samples. |
velocityUpdateMode | Whether the Audio Source should be updated in the fixed or dynamic update. |
volume | The volume of the audio source (0.0 to 1.0). |
DisableDualShock4Output | Disables playing of audio source though any enabled DUALSHOCK™4 controller. |
GetAmbisonicDecoderFloat | Reads a user-defined parameter of a custom ambisonic decoder effect that is attached to an AudioSource. |
GetCustomCurve | Get the current custom curve for the given AudioSourceCurveType. |
GetOutputData | Provides a block of the currently playing source's output data. |
GetSpatializerFloat | Reads a user-defined parameter of a custom spatializer effect that is attached to an AudioSource. |
GetSpectrumData | Provides a block of the currently playing audio source's spectrum data. |
Pause | Pauses playing the clip. |
Play | Plays the clip. |
PlayDelayed | Plays the clip with a delay specified in seconds. Users are advised to use this function instead of the old Play(delay) function that took a delay specified in samples relative to a reference rate of 44.1 kHz as an argument. |
PlayOnDualShock4 | Enable playing of audio source though a specfic DUALSHOCK™4 controller. |
PlayOneShot | Plays an AudioClip, and scales the AudioSource volume by volumeScale. |
PlayScheduled | Plays the clip at a specific time on the absolute time-line that AudioSettings.dspTime reads from. |
SetAmbisonicDecoderFloat | Sets a user-defined parameter of a custom ambisonic decoder effect that is attached to an AudioSource. |
SetCustomCurve | Set the custom curve for the given AudioSourceCurveType. |
SetScheduledEndTime | Changes the time at which a sound that has already been scheduled to play will end. Notice that depending on the timing not all rescheduling requests can be fulfilled. |
SetScheduledStartTime | Changes the time at which a sound that has already been scheduled to play will start. |
SetSpatializerFloat | Sets a user-defined parameter of a custom spatializer effect that is attached to an AudioSource. |
Stop | Stops playing the clip. |
UnPause | Unpause the paused playback of this AudioSource. |
PlayClipAtPoint | Plays an AudioClip at a given position in world space. |
enabled | Enabled Behaviours are Updated, disabled Behaviours are not. |
isActiveAndEnabled | Has the Behaviour had enabled called. |
gameObject | The game object this component is attached to. A component is always attached to a game object. |
tag | The tag of this game object. |
transform | The Transform attached to this GameObject. |
hideFlags | Should the object be hidden, saved with the scene or modifiable by the user? |
name | The name of the object. |
BroadcastMessage | Calls the method named methodName on every MonoBehaviour in this game object or any of its children. |
CompareTag | Is this game object tagged with tag ? |
GetComponent | Returns the component of Type type if the game object has one attached, null if it doesn't. |
GetComponentInChildren | Returns the component of Type type in the GameObject or any of its children using depth first search. |
GetComponentInParent | Returns the component of Type type in the GameObject or any of its parents. |
GetComponents | Returns all components of Type type in the GameObject. |
GetComponentsInChildren | Returns all components of Type type in the GameObject or any of its children. |
GetComponentsInParent | Returns all components of Type type in the GameObject or any of its parents. |
SendMessage | Calls the method named methodName on every MonoBehaviour in this game object. |
SendMessageUpwards | Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour. |
GetInstanceID | Returns the instance id of the object. |
ToString | Returns the name of the GameObject. |
Destroy | Removes a gameobject, component or asset. |
DestroyImmediate | Destroys the object obj immediately. You are strongly recommended to use Destroy instead. |
DontDestroyOnLoad | Makes the object target not be destroyed automatically when loading a new scene. |
FindObjectOfType | Returns the first active loaded object of Type type. |
FindObjectsOfType | Returns a list of all active loaded objects of Type type. |
Instantiate | Clones the object original and returns the clone. |
bool | Does the object exist? |
operator != | Compares if two objects refer to a different object. |
operator == | Compares two object references to see if they refer to the same object. |