Unity 5/4.6 Is it possible to make a UI Element not clickage/touchable?

I have a grid of UI buttons that answer to the event OnClick, it works great Until I display some visual feedback over the button, in my case a UI Text that show a “Combo x2” information. The UI Text over the button gets the OnClick (nothing to do on that) so the Buttons behind doesn’t get any OnClick events. I would like to make all Text I display over the button not clickable so my buttons gets all the events. How can I do that? I searched the docs there I could’nt find how to do this.

Add a CanvasGroup component. Set the property blocks raycast to false.

The new UI elements are handled following the parent/child hierarchy that you have defined.

With that in mind, you might be able to make your popup text a child of the button, which is how I would do it anyways. Even if you want the popup to follow the mouse cursor, you could still do it this way with a little bit of scripting.

EDIT: Though somewhat obvious, I forgot to mention that you should disable the popup text and only enable it when you want it to be visible. I imagine you are already doing something similar.

For an example, look at how a default button appears when you add it. The text is a child, and does not intercept the click events.

Here is a script I wrote to swap between menus on a button click using the new UI. It’s a little dirty as I just put it together the other day, but the part you’re looking for is in OpenMainMenu() sub. Once I have this setup I just drag and drop menus around in the UI. Usually I have each sub menu in a canvas group, and the script toggles their visibility using alpha and disable blocking of raycasts so they can’t block clicks on menu items “below” them while invisible. Although you’re using text, the concept still applies if it is on a parent canvas, anything that is a child of that canvas will be effected. Let me know if you have any questions.

public class MenuController : MonoBehaviour {

    public CanvasGroup mainMenu = new CanvasGroup();
    public CanvasGroup thisMenu = new CanvasGroup();

    public void Start()
    {
        
        CloseThisMenu(); 
        
        OpenMainMenu();
    }
    

    public void CloseThisMenu()
    {
        thisMenu.blocksRaycasts = thisMenu.interactable = false;//disallows clicks
        thisMenu.alpha = 0;   //makes menu invisible
        
    }

    public void OpenThisMenu()
    {
        thisMenu.blocksRaycasts = thisMenu.interactable = true;//allows clicks
        thisMenu.alpha = 1;  //makes menu visible

    }


    public void OpenMainMenu()
    {
        mainMenu.blocksRaycasts = mainMenu.interactable = true; //allows clicks
        mainMenu.alpha = 1;  //makes menu visible
    }

}