#three.js
Вопрос:
var orientation = {dim1: 100, dim2: 100, dim3: 100} geom = new THREE.BoxGeometry(orientation.dim1, orientation.dim2, orientation.dim3); //geom.translate(orientation.dim1 / 2, orientation.dim2 / 2, orientation.dim3 / 2); box_material = new THREE.MeshPhongMaterial({ color: 0xffffff, transparent: false, opacity: 0.5, alphaTest: 0.5 }); box_material.depthWrite = true; var vertices = []; vertices.push( 0, 0, 0 ); geom.setAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 )) ; var mesh = new THREE.Mesh(geom, box_material) //mesh.frustumCulled = false; scene.add(mesh);
Это код, который должен создать поле. Если я не установлю атрибут «позиция», он появится, но когда я попытаюсь установить его положение, он просто исчезнет. И если я попытаюсь вручную переместить его положение с консоли, он застрянет.
В чем проблема?
Спасибо!
Ответ №1:
Если вы просто хотите изменить положение коробки, просто используйте:
mesh.position.set(x, y, z);
Не прикасайтесь к geom.setAttribute('position')
методу, потому что это разрушило бы его вершины, что, вероятно, не то, что вы хотите.