BufferGeometry
Object3D
Raycaster
Camera
CubeCamera
PerspectiveCamera
OrthographicCamera
StereoCamera
Clock
Curve
CurvePath
Path
Shape
ShapePath
ArrowHelper
AxesHelper
BoxHelper
Box3Helper
CameraHelper
DirectionalLightHelper
GridHelper
PolarGridHelper
HemisphereLightHelper
PlaneHelper
PointLightHelper
SkeletonHelper
SpotLightHelper
Light
PointLight
RectAreaLight
SpotLight
DirectionalLight
HemisphereLight
LightShadow
PointLightShadow
AnimationLoader
AudioLoader
BufferGeometryLoader
CompressedTextureLoader
CubeTextureLoader
DataTextureLoader
FileLoader
ImageBitmapLoader
ImageLoader
Loader
LoaderUtils
MaterialLoader
ObjectLoader
TextureLoader
LoadingManager
Material
Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
MathUtils
Matrix3
Matrix4
Plane
Quaternion
AnimationAction
AnimationClip
AnimationMixer
AnimationObjectGroup
AnimationUtils
keyframeTrack
PropertyBinding
PropertyMixer
BooleanKeyframeTrack
QuaternionKeyframeTrack
StringKeyframeTrack
Audio
AudioAnalyser
AudioContext
AudioListener
PositionalAudio

PositionalAudio.setMaxDistance()

setMaxDistance( distance : float ) : void

设置音频的最大距离。当听众离音频源的距离超过最大距离时,音频将变得越来越弱,直到最终消失。

参数:

  • distance - 音频源的最大距离,以WebGL世界中的单位表示。

用法示例

// 创建音频源
const listener = new THREE.AudioListener();
camera.add( listener );

const sound = new THREE.PositionalAudio( listener );
const audioLoader = new THREE.AudioLoader();
audioLoader.load( 'audio/song.mp3', function( buffer ) {
    sound.setBuffer( buffer );
    sound.setRefDistance( 10 );
    sound.setMaxDistance( 100 );
    sound.setLoop( true );
    sound.play();
});

// 当相机距离音频源距离超过100个WebGL单位时,音频将消失。

说明

使用setMaxDistance()方法,可以设置音频的最大距离(单位为WebGL世界中的距离)。当听众离音频源的距离超出最大距离时,音频将变得越来越弱,直到最终消失。

默认情况下,最大距离为10,000,这意味着当听众离音频源的距离超过10,000个WebGL单位时,音频将完全消失。

注意,通过setMaxDistance()方法设置的最大距离只对PositionalAudio对象有效。对于Audio对象,最大距离是无效的。

参考文献