Я пытался обновить геометрию отдельных линий, используя переменные, чтобы я мог легко изменять значения в зависимости от угла камеры, но я не уверен, почему переменные, к которым я обращаюсь, не обновляются. Посмотрев вокруг, я обратился к случаям, когда пытался завершить анимационные последовательности, используя весь геометрический массив, используя
.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;
}
Мне просто интересно, почему это не работает при прямом изменении значений массива.