lil-gui
Import
import { GUI } from 'lil-gui'
Description
Using lil-gui with React Three Fiber.
lil.gui
is now the default GUI used in the official Three.js examples. We can also use lil-gui
in a React Three Fiber application.
The process to use lil-gui
is very similar to how you can do it with Dat.GUI.
This is because lil-gui
is essentially a drop-in replacement for Dat.GUI
.
We can install lil.GUI
from its official repository.
npm install lil-gui --save-dev
The type declarations are already included with the installation.
To import in your script,
import { GUI } from 'lil-gui'
And in your component, you can create and use it in a useEffect.
function Box({ gui }) {
const ref = useRef()
useEffect(() => {
const gui = new GUI()
gui.add(ref.current.rotation, 'x', 0, Math.PI * 2)
gui.add(ref.current.rotation, 'y', 0, Math.PI * 2)
gui.add(ref.current.rotation, 'z', 0, Math.PI * 2)
return () => {
gui.destroy()
}
}, [])
return (
<mesh ref={ref}>
<boxGeometry />
<meshBasicMaterial color={0x00ff00} wireframe />
</mesh>
)
}
Be sure to destroy the GUI, as shown in the above example, in case the component JSX is ever refreshed. Otherwise, you could have multiple GUIs instantiated into your document.
Working Example
Sharing lil-gui
Among Several Components
The above example is great if only one of your components need the lil-gui
and you can create it complete in the useEffect.
Below is an example where each component manages its own folder within one shared lil-gui
.
Working Example
Useful Links
Some examples using lil-GUI
R3F Environment Three r163 | sbedit.net |