ThreeJS: Сетка исчезает, если я изменю ее положение

#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') методу, потому что это разрушило бы его вершины, что, вероятно, не то, что вы хотите.