描述
Object3D.getObjectsByProperty()
方法是three.js中Object3D
类的一个方法,用于通过指定属性值搜索所有子对象,并将符合条件的子对象返回。
语法
object.getObjectsByProperty( name, value );
参数
name
: String - 用于搜索子对象的属性名称。例如“name”、“visible”等。value
: Number / String / Boolean - 用于搜索子对象的属性值。返回值
Array
- 返回一个包含所有符合条件的子对象的数组。示例
var scene = new THREE.Scene();
var cube1 = new THREE.Mesh( new THREE.BoxGeometry( 1, 1, 1 ), new THREE.MeshBasicMaterial() );
cube1.name = "cube1";
scene.add( cube1 );
var cube2 = new THREE.Mesh( new THREE.BoxGeometry( 1, 1, 1 ), new THREE.MeshBasicMaterial() );
cube2.name = "cube2";
scene.add( cube2 );
var cubes_visible = scene.getObjectsByProperty( "visible", true );
console.log( "cubes_visible", cubes_visible ); // [ cube1, cube2 ]
var cubes_name = scene.getObjectsByProperty( "name", "cube1" );
console.log( "cubes_name", cubes_name ); // [ cube1 ]
在这个示例中,我们创建了两个名为“cube1”和“cube2”的立方体,并将它们添加到场景中。我们使用getObjectsByProperty()
方法搜索属性为“visible”且值为true
的对象。这将返回两个立方体对象。接着,我们使用getObjectsByProperty()
搜索属性为“name”且值为“cube1”的对象,这将返回一个立方体对象。
注意事项
Object3D.traverse()
方法。