I have a situation where a model is ignored in favour of one behind it. The rear model is returned by
EventSystem.current.RaycastAll, and the front model’s
IPointerClickHandler callback isn’t triggered if the rear model is present. The rear model does not implement
IPointerClickHandler (or pointer up/down handlers, etc). Both these things work on the front model if the rear model isn’t there.
Debugging shows that the Raycast is only returning one result. By comparing behaviour when the rear model is and isn’t present, I can verify that the distance value in the RaycastResult is greater when hitting the rear model than when hitting the front model.
I can “fix” the problem by using the Inspector to disable and re-enable the front model.
Here’s the problem and the “fix” in action:
Higher quality version here.
EventSystem.current.RaycastAll is used to power the tooltips, and
IPointerClickHandler is (unsurprisingly) used to get the cube model to react to clicks.
Unity version: 2020.3.11f1