问题描述
我使用 dat.gui 来控制值,但想添加一个按钮来随机化值。有没有办法做到这一点?我有随机按钮,但我不知道如何引用参数来更改其值。
基本代码类似于:
const params = {}
params.num = 20
gui.add(params,'num').onChange(doSomething)
//on clicking the 'Randomise' button I would essentially like this to happen:
gui.(params,'num').setValue( randomValue ).onChange(doSomething)
解决方法
您可以更改属性的值并在 GUI 中使用 .listen()
来侦听属性的更改。
在 GUI 上单击 randomize
并查看它的作用:
<script type="module">
import {GUI} from "https://cdn.jsdelivr.net/npm/three@0.125.2/examples/jsm/libs/dat.gui.module.js";
let params = {
value: 20,randomize: _ => {
params.value = Math.random() * 40;
}
}
let gui = new GUI();
gui.add(params,"value",40).step(0.1).listen();
gui.add(params,"randomize");
</script>