因此,我尝试在three.js中执行mousemove事件,用户将鼠标悬停在某个几何上然后会缩放。
因此,对于动画,我正在使用GSAP,因为补间似乎不适用于我。但是,当我要缩放几何图形时,总是出现此错误:
javascript - Three.js和gsap缩放动画-LMLPHP

我不知道为什么,因为在gsap官方文档中,他们使用scale,但我相信没有插件。这是他们网站上的一个例子

gsap.to(".box", 1, {
    scale: 0.1,
    y: 60,
    yoyo: true,
    repeat: -1,
    ease: "power1.inOut",
    delay:1,
    stagger: {
      amount: 1.5,
      grid: "auto",
      from: "center"
    }
  });


这是我的代码:

function init () {

/*------Bunch of three.js code and initialsation*/
 window.addEventListener('mousemove',onMouseMove);

}

function onMouseMove(event) {

                event.preventDefault();
                mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
                mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
                raycaster.setFromCamera(mouse,camera);

                var intersects = raycaster.intersectObjects(scene.children, true);

                for(var i = 0; i < intersects.length; i++) {
                    gsap.to(intersects[i].object.scale, {duration: 1, scale: 0.8});
                }

            }

最佳答案

所以我想出了答案。似乎在three.js中,gsap scale属性不起作用,因此您需要确保在添加转换之前先参考scale,然后再使用x和y(或者z-我没有尝试过)增加或减小大小。
这是为我工作的代码:

gsap.to(intersects[i].object.scale, {duration: .7, x: 1.2, y:1.2});

10-06 15:26