<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioListener3D" inherits="Node3D" api_type="core" keywords="sound" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Overrides the location sounds are heard from.
	</brief_description>
	<description>
		Once added to the scene tree and enabled using [method make_current], this node will override the location sounds are heard from. This can be used to listen from a location different from the [Camera3D].
	</description>
	<tutorials>
	</tutorials>
	<methods>
		<method name="clear_current">
			<return type="void" />
			<description>
				Disables the listener to use the current camera's listener instead.
			</description>
		</method>
		<method name="get_listener_transform" qualifiers="const">
			<return type="Transform3D" />
			<description>
				Returns the listener's global orthonormalized [Transform3D].
			</description>
		</method>
		<method name="is_current" qualifiers="const">
			<return type="bool" />
			<description>
				Returns [code]true[/code] if the listener was made current using [method make_current], [code]false[/code] otherwise.
				[b]Note:[/b] There may be more than one AudioListener3D marked as "current" in the scene tree, but only the one that was made current last will be used.
			</description>
		</method>
		<method name="make_current">
			<return type="void" />
			<description>
				Enables the listener. This will override the current camera's listener.
			</description>
		</method>
	</methods>
	<members>
		<member name="doppler_tracking" type="int" setter="set_doppler_tracking" getter="get_doppler_tracking" enum="AudioListener3D.DopplerTracking" default="0">
			If not [constant DOPPLER_TRACKING_DISABLED], this listener will simulate the [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] for objects changed in particular [code]_process[/code] methods.
			[b]Note:[/b] The Doppler effect will only be heard on [AudioStreamPlayer3D]s if [member AudioStreamPlayer3D.doppler_tracking] is not set to [constant AudioStreamPlayer3D.DOPPLER_TRACKING_DISABLED].
		</member>
	</members>
	<constants>
		<constant name="DOPPLER_TRACKING_DISABLED" value="0" enum="DopplerTracking">
			Disables [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] simulation (default).
		</constant>
		<constant name="DOPPLER_TRACKING_IDLE_STEP" value="1" enum="DopplerTracking">
			Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] by tracking positions of objects that are changed in [code]_process[/code]. Changes in the relative velocity of this listener compared to those objects affect how audio is perceived (changing the audio's [member AudioStreamPlayer3D.pitch_scale]).
		</constant>
		<constant name="DOPPLER_TRACKING_PHYSICS_STEP" value="2" enum="DopplerTracking">
			Simulate [url=https://en.wikipedia.org/wiki/Doppler_effect]Doppler effect[/url] by tracking positions of objects that are changed in [code]_physics_process[/code]. Changes in the relative velocity of this listener compared to those objects affect how audio is perceived (changing the audio's [member AudioStreamPlayer3D.pitch_scale]).
		</constant>
	</constants>
</class>
