Обновление геометрии линии - PullRequest
0 голосов
/ 30 апреля 2020

Я пытался обновить геометрию отдельных линий, используя переменные, чтобы я мог легко изменять значения в зависимости от угла камеры, но я не уверен, почему переменные, к которым я обращаюсь, не обновляются. Посмотрев вокруг, я обратился к случаям, когда пытался завершить анимационные последовательности, используя весь геометрический массив, используя

.geometry.verticesNeedUpdate = true;

Но мне не повезло, пытаясь изменить единственное значение в массиве. Я почти уверен, что просто я не могу изменить массив, основанный на замене переменной, но не видел ничего, что подразумевало бы это.

function init() {
...
  crosspointsgeometry = new THREE.Geometry(); // CROSS GEOMETRY STORAGE
  crosspointsgeometry.vertices.push( 
  new THREE.Vector3(botXlineR, botYlineR, botZlineR ), new THREE.Vector3(topXlineR, topYlineR, topZlineR ));

  crosspoints = new MeshLine();
  crosspoints.setGeometry( crosspointsgeometry );
  crosspointsmaterial = new MeshLineMaterial({ lineWidth: 0.7, color: 0xff0000 });
  crosspointsmesh = new THREE.Mesh( crosspoints.geometry, crosspointsmaterial );
  scene.add( crosspointsmesh );
function animate() {

    requestAnimationFrame( animate );

    if(camera.position.x < 65 && camera.position.x > -65) { topXlineR = 17, topYlineR = 55, topZlineR = -17 }
    if(camera.position.x > 65) { topXlineR = 15, topYlineR =  30, topZlineR = -37 };
    console.log(topXlineR);
    crosspointsmesh.geometry.verticesNeedUpdate = true;
}

Мне просто интересно, почему это не работает при прямом изменении значений массива.

...