Я хочу, чтобы экземпляр dat. GUI () отображался, когда щелчок происходит внутри меня sh, и когда он щелкает снова, чтобы исчезнуть. Очевидно, когда его повторно щелкают, я хочу, чтобы он вернулся. Я пробовал много разных вещей, но не могу добиться желаемого поведения ...
Например, цыпленок, этот код:
function onDocumentMouseClick(event) //if we detect a click event
{
// the following line would stop any other event handler from firing
// (such as the mouse's TrackballControls)
event.preventDefault();
// update the mouse variable
mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
// calculate objects intersecting the picking ray
var intersects = raycaster.intersectObjects( scene.children );
//if mouse is on top of the mesh when the click occurs, change color of mesh and render GUI
if ( intersects.length > 0 && intersects[ 0 ].object === cube && isClicked === false)
{
isClicked = true;
cube.material.color.set( 0xF7F7F7 );
var params = {
textField: "Enter value:"
}
var item = gui.add(params, "textField").onFinishChange(function (value) {
//Do something with the new value
console.log(value);
});
}
//if mouse is on top of the mesh when the click occurs, but it already marked as 'clicked', now mark it as 'unclicked'
else if ( intersects.length > 0 && intersects[ 0 ].object === cube && isClicked === true)
{
isClicked = false;
cube.material.color.set( cube.userData.originalColor );
dat.GUI.toggleHide();
//gui.toggleHide()
}
}
Теперь, когда я нажимаю на меня sh, появляется GUi создается, когда я снова нажимаю, он исчезает, но когда я снова нажимаю, происходят странные вещи.
Иногда кнопка скрытия не работает, но в конечном итоге я получаю много разных GUIS, где мне нужен только один.
И есть возможность заставить его появляться / исчезать.