The way I've been handling popups and inputs is to use tags. So for instance I have a check in one of my input scripts
if (GameObject.FindWithTag("Popup") == null) {
//allow inputs to be handled
}
Something like that is simple and you can extend it out to handle everything. You could even make the tags more specific.
So for UI buttons you might have to override their OnClick() functions.
Trending Articles
More Pages to Explore .....