es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo mover mi cámara lateralmente en ThreeJS?

Quiero mover mi cámara hacia los lados usando las teclas de flecha. Para esto puedo usar algo como esto para avanzar:

const facingDir = this.camera.getWorldDirection(new THREE.Vector3())

this.camera.position.addScaledVector(facingDir, 1)

¿Cómo puedo calcular el vector para moverme hacia los lados?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para calcular el vector para moverse lateralmente, se puede usar el método cross() proporcionado por la clase THREE.Vector3. Aquí hay un ejemplo de código:

    // Obtener el vector hacia arriba de la cámara
    const upDir = this.camera.up.clone()
    
    // Obtener el vector hacia la derecha de la cámara
    const rightDir = facingDir.clone().cross(upDir)
    
    // Mover la cámara a la derecha en 1 unidad
    this.camera.position.addScaledVector(rightDir, 1)
    

    En este fragmento de código, primero obtenemos el vector hacia arriba de la cámara clonando la propiedad up del objeto de la cámara. Luego, obtenemos el vector hacia la derecha de la cámara clonando el vector facingDir y usando el método cross() con el vector upDir. Finalmente, usamos el método addScaledVector() para mover la cámara hacia la derecha en 1 unidad a lo largo del vector rightDir.

Comments are closed.