Tengo problemas para acceder a .attributes.position para cualquier tipo de geometría en THREE.js. Básicamente, el error de la consola es 'Error de tipo no detectado: no se pueden leer las propiedades de undefined (leyendo 'posición')'.
const cylinderGeometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 ); const position = cylinderGeometry.attributes.position; const vertex = new THREE.Vector3();Como referencia, el fragmento se toma de https://threejs.org/docs/#api/en/objects/SkinnedMesh .
¿Alguna idea de por qué puede pasar esto? ¿Podría estar relacionado con la versión THREE.js que estoy usando?
Si está utilizando Three.js versión r125 o posterior, debería poder obtener el atributo de posición de cualquier geometría con el método .getAttribute() . :
const cylinderGeometry = new THREE.CylinderGeometry( 5, 5, 5, 5, 15, 5, 30 ); const posAttribute = cylinderGeometry.getAttribute("position"); const posArray = posAttribute.array;Si usa la versión r124 o anterior, entonces la geometría generada solía estar estructurada de manera diferente. Este enfoque ahora está en desuso, por lo que se recomienda que actualice a una versión más nueva.