Я хочу, чтобы положение камеры менялось при нажатии на меня sh
В приведенном здесь примере http://www.minyoungna.com/ Камера перемещается при нажатии на куб , но камера остается в движении ТОЛЬКО , когда мышь наводит курсор на объект.
Я думаю, что источником этой проблемы является мое событие onclick, но я не знаю, как это исправить.
function onclick (event){
event.preventDefault();
var intersects = raycaster.intersectObjects( scene.children );
if ( intersects.length > 0 ) {
tween = new TWEEN.Tween(camera.position) // Create a new tween that modifies 'coords'.
.to({ x: 100 ,y:100 }, 2000) // Move to (300, 200) in 1 second.
.easing(TWEEN.Easing.Quadratic.Out) // Use an easing function to make the animation smooth.
.start(); // Start the tween immediately.
} else {
}
}
Я думаю, что Когда происходит событие onclick, оно проверяет, есть ли какие-либо пересекающиеся объекты, использующие raycaster, и запускает анимацию движения, которая заканчивается через две секунды, независимо от того, есть ли какие-либо пересекающиеся объекты после щелчка.
В действительности это когда происходит щелчок, он не только создает неудобство, упомянутое выше, он отключает эффект анимации при последующих щелчках и телепортирует вас в местоположение камеры
Некоторые из моих других функций
function animate (time) {
for (let property in cube) {
cube[property].rotation.x += .01;
cube[property].rotation.y += .01;
};
position(time);
controls.update();
composer.render();
frameId = requestAnimationFrame(animate)
}
function onDocumentMouseMove( event ) {
event.preventDefault();
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
}
Лучшее