Я собираюсь использовать 'raycaster', чтобы выбрать один из 'объектов' для увеличения, но когда камера перемещается к объекту, она наклоняется вместо того, чтобы идти прямо. Теперь, как вы go по диагонали, когда она наклоняется к координатной точке?
Вот мой код:
if(mouseup && (selectobject!==undefined ||selectobject!==null)) {
//Calculate distance to camera and selectobjectca
var distance =
Math.sqrt(
(
(selectobject.point.x-camera.position.x) * (selectobject.point.x-camera.position.x)
) +
(
(selectobject.point.y-camera.position.y) * (selectobject.point.y-camera.position.y)
) +
(
(selectobject.point.z-camera.position.z) * (selectobject.point.z-camera.position.z)
)
)
if(distance>100) {
camera.lookAt(selectobject.point)
console.log('camera.position ',camera.position.x)
if( camera.position.x < selectobject.point.x &&
Math.abs(selectobject.point.x-camera.position.x) > 50) {
camera.position.x += xratio
} else if(camera.position.x < selectobject.point.x &&
Math.abs(selectobject.point.x-camera.position.x) > 50) {
camera.position.x -= xratio
}
if( camera.position.y < selectobject.point.y &&
Math.abs(selectobject.point.y-camera.position.y) > 50) {
camera.position.y+=yratio
} else if (camera.position.y > selectobject.point.y &&
Math.abs(selectobject.point.y-camera.position.y) > 50) {
camera.position.y-=yratio
}
if( camera.position.z<selectobject.point.z &&
Math.abs(selectobject.point.z-camera.position.z) > 50) {
camera.position.z+=zratio
} else if(camera.position.z>selectobject.point.z &&
Math.abs(selectobject.point.z-camera.position.z) > 50) {
camera.position.z-=zratio
}
camera.updateProjectionMatrix();
} else {
controls.update()
mouseup = false
}
} else {
mouseup = false
}