Wawa Sensei logo
LoginEnroll now

Controles

Starter pack

Drei proporciona un conjunto de controles 煤tiles para navegar en tu escena e interactuar con objetos. Vamos a descubrirlos.

Orbit Controls

Ya hemos usado el componente OrbitControls en las lecciones anteriores para navegar en nuestra escena.

Aunque lo utilizamos sin ninguna props, proporciona opciones 煤tiles para personalizar su comportamiento.

Primero, puedes decidir habilitar o deshabilitar caracter铆sticas con las siguientes props booleanas:

  • enableZoom
  • enableRotate
  • enablePan

Por ejemplo, si tu experiencia se basa en el desplazamiento, puedes desactivar el zoom para evitar conflictos cuando el usuario usa la rueda del rat贸n.

Luego, puedes cambiar la velocidad de los controles con:

  • zoomSpeed
  • rotateSpeed
  • panSpeed

Finalmente, puedes cambiar los valores m铆nimos y m谩ximos para el zoom:

  • minZoom
  • maxZoom

...las rotaciones superior e inferior:

  • minPolarAngle
  • maxPolarAngle

...las rotaciones izquierda y derecha:

  • minAzimuthAngle
  • maxAzimuthAngle

...y el pan con:

  • minDistance
  • maxDistance

Si ejecutas el proyecto de inicio, puedes ver que podemos alcanzar posiciones que parecen err贸neas. (debajo del suelo, a trav茅s del mesh, paneo que no muestra el faro, etc.)

Vamos a combinar algunas de estas props para crear una experiencia m谩s restringida:

<OrbitControls
  enablePan={false}
  maxPolarAngle={Math.PI / 2}
  minAzimuthAngle={-Math.PI / 2}
  maxAzimuthAngle={Math.PI / 2}
  minDistance={3}
  maxDistance={10}
/>

Observa c贸mo ahora la c谩mara est谩 limitada para siempre mostrar el faro de una manera atractiva. Evita que el usuario vea a trav茅s de los objetos y por debajo del suelo.

Esos peque帽os detalles pueden hacer una gran diferencia en la calidad de tus experiencias.

Como el componente drei es solo un envoltorio alrededor de la clase OrbitControls de three.js consulta la documentaci贸n de three.js para ver todas las props disponibles.

Controles de Presentaci贸n

PresentationControls en oposici贸n a OrbitControls interact煤a con el contenido de los objetos envueltos, no con la c谩mara. Aparte de eso, son muy similares.

Aqu铆 est谩 el c贸digo de ejemplo de la documentaci贸n de drei

End of lesson preview

To get access to the entire lesson, you need to purchase the course.