0
我正在使用three.js使用指針鎖控件。我將它設置爲當函數被調用時更改攝像頭的旋轉。但是,正因爲如此,相機纔開始自行旋轉。Three.js旋轉攝像頭並更新控件(可能的Gimbal鎖?)
而不是它旋轉整個相機和控制方案,它似乎旋轉相機,所以如果你按W向前移動,你實際上在不同的方向移動。這就像走到你身邊,而不是移動整個身體。
任何方法來解決這個問題?上述
camera.lookAt(new THREE.Vector3(50, 0, 0));
代碼是我使用得到它看一個載體(可以用camera.lookAt(objectnamehere.position)來代替的東西。上面
// Camera
// -------
camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 1, 1000);
// Controls
// --------
controls = new THREE.PointerLockControls(camera);
scene.add(controls.getObject());
//camera.lookAt(new THREE.Vector3(50, 0, 0));
var onKeyDown = function(event) {
switch (event.keyCode) {
case 38: // up
case 87: // w
moveForward = true;
break;
case 37: // left
case 65: // a
moveLeft = true;
break;
case 40: // down
case 83: // s
moveBackward = true;
break;
case 39: // right
case 68: // d
moveRight = true;
break;
}
};
var onKeyUp = function(event) {
switch (event.keyCode) {
case 38: // up
case 87: // w
moveForward = false;
break;
case 37: // left
case 65: // a
moveLeft = false;
break;
case 40: // down
case 83: // s
moveBackward = false;
break;
case 39: // right
case 68: // d
moveRight = false;
break;
}
};
document.addEventListener('keydown', onKeyDown, false);
document.addEventListener('keyup', onKeyUp, false);
代碼設置了攝像頭併爲three.js所控制系統pointerlock控制。
任何想法?謝謝。