我对dat.GUI相当新,我在使用更复杂的变量时遇到了问题。
我有以下内容:
let complexVariable= {
topLayer:
{
deeperLayer:
{
deepestLayer: 20,
//Other stuff
}
}
}
let gui = new dat.GUI();
gui.add(complexVariable, "topLayer.deeperLayer.deepestLayer", 10, 40);
这给了我以下错误:
Uncaught Error: Object "[object Object]" has no property "topLayer.deeperLayer.deepestLayer"
任何帮助都将不胜感激。
答案 0 :(得分:1)
通过查看source code,目前似乎无法实现。它们使用括号表示法和您在对象上传递的单个属性。
function add(gui, object, property, params) {
if (object[property] === undefined) {
throw new Error(`Object "${object}" has no property "${property}"`);
}
...
所以你要告诉dat.GUI要做的是找到一个顶级属性“topLayer.deeperLayer.deepestLayer”,你的对象显然不存在。似乎必须编写更多代码来支持嵌套属性。
dat.gui必须执行类似if (object[property1][property2][...] === undefined)
的操作或在您的情况下执行complexVariable["topLayer"]["deeperLayer"]["deepestLayer"];