Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

301
Visualizações
Javscript - Three.js ¿Deshabilitar la panorámica en dispositivos móviles?

Así que estoy haciendo un proyecto en 3D con tres.js. Todo funciona como se esperaba en mi computadora portátil. Estoy usando OrbitControls para permitir el movimiento de la cámara, pero he deshabilitado el desplazamiento panorámico con el botón derecho, porque quiero que la cámara solo gire. Al cambiar a un dispositivo móvil (iphone), con dos dedos puedo mover la cámara (no girar). ¿Hay alguna manera de deshabilitar este comportamiento en los dispositivos móviles? Mis controles orbitales:

 this.controls = new OrbitControls(this.camera, this.renderer.domElement) this.controls.enableDamping = true this.controls.maxPolarAngle = Math.PI * 0.45 this.controls.mouseButtons = { LEFT: THREE.MOUSE.ROTATE, MIDDLE: THREE.MOUSE.DOLLY, RIGHT: '' }

Función de actualización:

 _RAF() { requestAnimationFrame(() => { this.water.material.uniforms[ 'time' ].value += 1.0 / 60.0 this.controls.maxDistance = 10000.0 this.controls.minDistance = 10.0 this.controls.update() this.camera.updateProjectionMatrix() this.renderer.render(this.scene, this.camera) this._RAF() }) }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Parece que no está deshabilitando la panorámica, sino simplemente cambiando la acción del mouse utilizada por los controles.

Para deshabilitar/habilitar la panorámica, debe usar enablePan .

Ahora, solo desea deshabilitar la panorámica en dispositivos móviles, por lo que podríamos elegir un punto de interrupción para habilitar/deshabilitar condicionalmente la panorámica:

 this.controls.updatePanning = () => { const minWidth = 780 // Your min breakpoint for enabling pan. if (window.innerWidth >= minWidth ) { this.controls.enablePan = true } else { this.controls.enablePan = false } }

Luego, en su ciclo de actualización, simplemente invoque la función anterior:

 _RAF() { requestAnimationFrame(() => { this.water.material.uniforms[ 'time' ].value += 1.0 / 60.0 this.controls.maxDistance = 10000.0 this.controls.minDistance = 10.0 this.controls.updatePanning() this.controls.update() this.camera.updateProjectionMatrix() this.renderer.render(this.scene, this.camera) this._RAF() }) }

Podría abordar esto de varias maneras. Por ejemplo: solo puede ejecutar esta función una vez y no todos los cuadros.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda