dat.gui コントローラーのドロップダウン リストの値だけを更新できるかどうかを調べています。
var gui = new dat.GUI();
gui.add(this, 'toggle').onChange( updateToggle );
gui.add(item, 'template', [ 'A', 'B', 'C', 'D' ]).onChange( updateTemplate );
トグルが変更されたら、テンプレートのオプションを変更したい:
if (startRibbon) {
gui.__controllers[1].options(['A', 'B']);
} else {
gui.__controllers[1].options(['A', 'B', 'C', 'D']);
};
これにより値が変更されますが、新しいインデックスを持つ新しいテンプレート コントローラーが作成され (前のインデックスが削除されます)、次回は機能しなくなります。また、新しいコントローラーがコントローラー リストの一番下にプッシュされます。
新しい変更された/新しいコントローラーを試して追跡するためのコードを追加する前に、誰かがより良い方法を持っているかどうかを確認する必要があると考えました。