Detecting a UI element is over another UI element

I’m essentially curious if there’s a way of doing this without adding a 2D collider to my UI elements, since this forces me to also put 2D rigidbodies on them. It just seems over kill. If it isn’t going to be a hit on memory or performance than I’ll go ahead and do it with ray casting and 2 colliders. If not …

I have an icon that’s controlled by the player and the camera is parented to it. The icon moves over a map and if the icon is over a particular regiond/point I want to interact with it. I’ve googled a little bit and pondered on it for a few days while working on other stuff but haven’t thought of a what I feel is a reasonable way of handling this.

I’m posting this in the forums as well, so if it’s too much discussion feel free to close this.

I’ve had some success here by adding a Canvas Group and manipulating the Blocks Raycast parameter.

You could also use multiple canvases and change the priority of the associated raycasters.

There is also probably a way to force the automatic system to do a raycast from a particular point. I just haven’t figured it out yet.