- Home /
Hide/show UI Button and trigger the OnPointerDown event ?!
I have a UI panel with UI buttons and each button have animation which changes the button’s color if the mouse is over it (button highlighted). It works good while the panel is enabled. But after disabling the panel using SetActive(false), and enabling it again SetActive(true), IF THE MOUSE POINTER IS ALREADY OVER the button, corresponding OnPointerDown event NOT TRIGGERED and the button is not highlighted.
One way to workaround this problem – is not to use SetActive(), but just set the alpha to zero and make the panel transparent. But I don’t think that it is a good idea. It could be bad for performance in case of complicated interface with a lot of panels and buttons.
How can I solve this problem another way and to make the button highlighted ?
Another observation: even if the panel always enabled, but the game starts with the mouse pointer ALREADY OVER the button and the mouse pointer IS NOT MOVING then the button also will be NOT HIGHLIGHTED. And it will be highlighted only after mouse cursor will be moved at least for 1 pixel.
Please help.
Just some more observations:
If before disabling the panel one specific button WAS NOT HIGHLIGHTED and after enabling the panel the cursor is over this button, then this button will be HIGHLIGHTED only after mouse cursor will move at least for 1 pixel.
If before disabling the panel one specific button WAS HIGHLIGHTED and after enabling the panel the cursor is over this button, then this button will be NOT HIGHLIGHTED whether mouse cursor will move or not over this button. It will be highlighted only after mouse cursor leave the button rectangle area and enters into it again, which, of course, is expectable.