Hi, I would like to find out if I am able to detect clicking on UI elements, so camera rotation will not occur when clicking on buttons for example.
One way that I approach that is by using a global state variable in my UI button script. For example:
var ButtonLogic = pc.createScript('buttonLogic');
ButtonLogic.hasFocus = false;
// initialize code called once per entity
ButtonLogic.prototype.initialize = function() {
this.entity.button.on('mouseenter', () => ButtonLogic.hasFocus = true);
this.entity.button.on('mouseleave', () => ButtonLogic.hasFocus = false);
};
Now in your camera input script you can check on top if any button has input like this, and if it’s true cancel/bypass any input:
if(ButtonLogic.hasFocus) return;
// --- camera input
2 Likes
Thank you Leonidas! That should work.
May I ask if there is also a way to achieve this by determining if click was on element that is in UI layer?
I agree that may be useful to have as an API (if it’s possible) though right now there isn’t anything available like this in the engine.
You can try and submit a feature request in the engine repo.
ok Thank you very much !
1 Like