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

BufferGeometry.hasAttribute()

hasAttribute( name : String ) : Boolean

检查给定的属性名称是否存在于缓冲区几何体的属性列表中。

参数

  • name:属性名称。

返回值

  • 如果缓冲区几何体包含具有给定名称的属性,则返回 true;否则返回 false

描述

BufferGeometry 是 three.js 中用于表示 3D 几何体的对象。其包含几何体的结构和属性信息,例如顶点位置、颜色、纹理坐标等。BufferGeometry 对象可由 Geometry 对象转换而来,或者手动创建并填充属性。各属性的类型和约束请参见 BufferAttribute 的文档。

在使用 BufferGeometry 时,有时需要检查特定属性是否存在,以判断后续操作的可行性。hasAttribute() 方法可以方便地进行此类检查,其在属性列表中查找给定名称的属性,并返回是否找到的布尔值。在缓冲区几何体中,每个属性都有一个名称,可以通过其名称在 BufferGeometry 中进行访问。

示例

// 创建 BufferGeometry 对象,包含顶点位置和颜色属性
var geometry = new THREE.BufferGeometry();
var positions = new Float32Array( [
     0.0,  0.5, 0.0,
    -0.5, -0.5, 0.0,
     0.5, -0.5, 0.0
] );
var colors = new Float32Array( [
    1.0, 0.0, 0.0,
    0.0, 1.0, 0.0,
    0.0, 0.0, 1.0
] );
geometry.addAttribute( 'position', new THREE.BufferAttribute( positions, 3 ) );
geometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ) );

// 检查是否存在 position 和 color 属性
console.log( geometry.hasAttribute( 'position' ) ); // 输出 true
console.log( geometry.hasAttribute( 'color' ) );    // 输出 true
console.log( geometry.hasAttribute( 'normal' ) );   // 输出 false

参考链接