OnPointerEnter blocked by something

I have my project setup like this:

  • Main Camera
    • Physics 2D Raycaster
      • Event Mask: Everthing
  • Canvas
  • Graphic Raycaster
    • Blocking Objects: None
    • Blocking Mask: Nothing

2 Objects setup:

  1. GameObject
    • Sprite Renderer
    • Rigidbody 2D
    • Circle Collider 2D
    • (my GO script)
  2. UI
    • Image
    • Button
    • (my UI script)

In both my GO and UI script, I add events like OnPointerEnter,etc. Everything work fine. I have my pointer enter event on both object.
But when I use a joint to drag a GO object and move to top of the UI object. My UI object OnPointerEnter blocked. I search on web and everybody ask for blocking raycast on GO to UI. But I need the reverse, I want both GO and UI receive all events normally when any object overlap. Any hints?

Finally get what I want by taking Zynek’s suggestion.
I add rigibody2D(isKinematic and Freeze xyz) and 2Dcollider(is trigger) as component in UI object. OnTriggerEnter2D receive my GO collider and done.
But I still curious why I cannot make both GO and UI get my pointer/touch OnPointerEnter.

I´m sorry i misled you. What i meant is to add Event Trigger to UI as i did in this picture:

81730-eventtrigger.png

U just add pointer enter and pointer exit events and set methods you want to call when it occurs. In my case im calling method that sets boolean onGui to proper value.