- Home /
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.
Answer by Kiwasi · Dec 08, 2014 at 09:42 PM
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.
That's an interesting thought. Seems like a great place to start anyway. I'll update once I've tried.
It just dawned on me that this likely wouldn't be very flexible. With the BoxCollider2D I can modify the collision shape so that the user has to be more accurate with their selection. I just might be forced to go that route... Unless someone has a way of doing this differently.
$$anonymous$$aybe RaycastAll? Let me know. I'm still getting to grips with how the event system works. Seems a bit like voodoo to me, but that's just because I haven't figured it all out yet.
Your answer
Follow this Question
Related Questions
Unity 4.6B UI Scrollbar Usage 1 Answer
UI 4.6 Detecting if mouse,touch event is over any GUI element 1 Answer
Making a Menu like UDK in Unity 4.6 1 Answer
unity 4.6 button functions? 1 Answer
A node in a childnode? 1 Answer