В настоящее время я пытаюсь сделать анимацию в файле three.js, и по какой-то причине у меня возникают проблемы с масштабированием объектов в функции обновления, но у меня нет проблем с непрозрачностью, позицией и т. Д.Я не уверен, что просто использую неправильные команды или что-то еще, но независимо от того,
Я пробовал разные вещи, такие как scale, material.scale, geometry.scale, ect.Я просто сбит с толку, я, вероятно, просто упускаю очевидные вещи, но после поиска в Google различных решений и использования scale.set (scalex, scaley, 0.000000000001) и просто помещаю переменную в состояния if для зацикливания и обновления scalex и scaley, но этовсе еще не обновляется.
var bpm = 124;
var ring;
var ringgeometry = new THREE.BoxGeometry( 1080/10, 1080/10 , 0 );
var ringmaterial = new THREE.MeshBasicMaterial({
map: new THREE.TextureLoader().load("RING.png"),
blending: THREE.screenBlending,
transparent: true, opacity: 1
});
var clock = new THREE.Clock;
function update() {
if(clock.elapsedTime < 377){ ticker = clock.elapsedTime * (songBPM / 60);
bpm = Math.round(ticker), console.log(bpm), console.log(sect) };
clock.getDelta();
if(bpm >= 34 && bpm <= 40){
ring = new THREE.Mesh( ringgeometry, ringmaterial);
if(bpm == 34){ scene.add(ring) };
/////////////////////////////////
if(bpm >= 34 && bpm <= 40){ ringgeometry.scale.x += 0.1, ringgeometry.scale.y += 0.1 }
ring.position.set(0, 0, 0);
////////////////////////////////
if(bpm >= (32 + 1) && bpm <= (32 + 10)){ ringmaterial.opacity -= 0.01 };
}
if(bpm == 40 && bpm <= 42){ scene.remove(ring) };
}
renderer.setAnimationLoop(() => {
update();
composer.render(scene, camera);
});
function render(){ composer.render() };
Этот код только помещает кольцо в сцену в масштабе по умолчанию и не удаляет его из композиции, не уменьшает непрозрачность и не масштабирует ее.
Мне также приходилось находить неловкие решения для удаления объектов из сцен, потому что scene.remove (), похоже, не работает половину времени и в конечном итоге отстает от моей сцены, если позже я вручную не установлю непрозрачность на 0.
Заранее спасибо и извините, если это очевидное решение.