Javascript Three.js:更改相机位置可防止移动

Javascript Three.js:更改相机位置可防止移动,javascript,three.js,Javascript,Three.js,我有一个问题,在更改初始相机位置时,我无法再移动它。下面是我的代码: 初始设定位置: camera.position.set (0, 1.67, 10); 现在,在这种情况下,我将更改相机的Z位置: if (cube.material.opacity == 0.2) { camera.position.set (0, 1.67, 0); } 我正在使用此脚本通过键盘事件移动相机: window.addEventListener('keydown', onKeyDown, false

我有一个问题,在更改初始相机位置时,我无法再移动它。下面是我的代码:

初始设定位置:

camera.position.set (0, 1.67, 10);
现在,在这种情况下,我将更改相机的Z位置:

if (cube.material.opacity == 0.2) {
    camera.position.set (0, 1.67, 0);
}
我正在使用此脚本通过键盘事件移动相机:

window.addEventListener('keydown', onKeyDown, false );

distance = 0.05;

function onKeyDown() {
    switch( event.keyCode ) {
        case 87:
            camera.translateZ( - distance );
            break;
        case 83:
            camera.translateZ( distance );
            break;
        case 65:
            camera.translateX( - distance );
            break;
        case 68:
            camera.translateX(  distance );

    }
};

将Z位置从
10
更改为
0
后,当按下键时,摄像头来回抖动,不再移动。我怎样才能解决这个问题?谢谢。

如果您更改了
camera.translateZ(-distance)
摄像机位置.z-=距离(其他键依此类推)?这没有什么区别。我认为问题是在该条件下,相机在z轴上“设置”到位,无法移动,但沿x轴移动是可以的。但是我不知道如何修复它。您可能在渲染/更新循环中重新定位了摄影机(第二个代码段)。这使得每次渲染时都要设置位置。你能不能给这段代码多加一点上下文?我想大概是这样的。我改变了相机的位置以及渲染的场景,这就是原因。我需要创建一个新的摄像机吗?如果在循环过程中更改摄像机位置,只要满足条件,摄像机就会一直更改位置。此外,更多的代码可以帮助我们了解您的问题。你会发布你的动画功能吗?