Controlli
Drei fornisce un set di controlli utili per navigare nella tua scena e interagire con gli oggetti. Scopriamoli insieme.
Orbit Controls
Abbiamo già utilizzato il componente OrbitControls
nelle lezioni precedenti per navigare nella nostra scena.
Sebbene lo abbiamo usato senza alcun props, offre opzioni utili per personalizzare il suo comportamento.
Innanzitutto, puoi decidere di abilitare o disabilitare funzionalità con le seguenti props booleane:
enableZoom
enableRotate
enablePan
Ad esempio, se la tua esperienza si basa sullo scroll, puoi disabilitare lo zoom per prevenire conflitti quando l'utente utilizza la rotellina del mouse.
Poi, puoi modificare la velocità dei controlli con:
zoomSpeed
rotateSpeed
panSpeed
Infine, puoi modificare i valori minimo e massimo per lo zoom:
minZoom
maxZoom
...le rotazioni superiori e inferiori:
minPolarAngle
maxPolarAngle
...le rotazioni sinistra e destra:
minAzimuthAngle
maxAzimuthAngle
...e il pan con:
minDistance
maxDistance
Se esegui il progetto iniziale, puoi vedere che possiamo raggiungere posizioni che sembrano buggate. (sotto il terreno, attraverso il mesh, pan per non mostrare il faro, ecc.)
Combiniamo alcune di queste props per creare un'esperienza più vincolata:
<OrbitControls enablePan={false} maxPolarAngle={Math.PI / 2} minAzimuthAngle={-Math.PI / 2} maxAzimuthAngle={Math.PI / 2} minDistance={3} maxDistance={10} />
Osserva come la telecamera ora è limitata per mostrare sempre il faro in modo accattivante. Impedisce all'utente di vedere attraverso gli oggetti e sotto il terreno.
Questi piccoli dettagli possono fare una grande differenza nella qualità delle tue esperienze.
Poiché il componente drei è solo un wrapper attorno alla classe OrbitControls di three.js, consulta la documentazione di three.js per vedere tutte le props disponibili.
Controlli di Presentazione
PresentationControls
, a differenza di OrbitControls
, interagiscono con il contenuto degli oggetti wrapper, non con la camera. A parte ciò, sono molto simili.
Ecco il codice di esempio dalla documentazione di drei
React Three Fiber: The Ultimate Guide to 3D Web Development
✨ You have reached the end of the preview ✨
Go to the next level with Three.js and React Three Fiber!
Get full access to this lesson and the complete course when you enroll:
- 🔓 Full lesson videos with no limits
- 💻 Access to the final source code
- 🎓 Course progress tracking & completion
- 💬 Invite to our private Discord community
One-time payment. Lifetime updates included.