2D Trigger colliders really need a Rigidbody?

I have 2 objects, and I want to play an animation when one of them touches another, when i drag one on top of the other using touch.

So I gave them both 2DCollider, ticked “IsTrigger”
and have a script with “OnTriggerStay2D”

But it only works, when the target has a RigidBody. The documentation also says that.
But when i Freeze all constraints on the rigidBody, it says “Rather than turning on all constraints, consider removing the RigidBody”…

so now I’m double-guessing myself.
Is there a better way?

If they have to move, even if not through physics, then they need to have RigidBody.

There’s more than one reason why you have to do this.

(1) Semantically: A Rigidbody(2D) represents an object that can play/move around the world, and its colliders define its shape.

Colliders WITHOUT a rigidbody represent static parts of “the world”, like nondestructible, nonmoving floors or walls; or if they’re triggers, they represent things like nonmoving sensor regions and meaningful areas. They don’t interact with each other. They’re only there to block and detect. But they don’t move and you’re not supposed to move them.

(2) Performance-wise: Unity considers those rigidbody-less colliders AS part of a non-moving world and makes optimizations accordingly. Those optimizations makes moving those colliders without rigidbodies computationally expensive, as it triggers some large rebuilding processes depending on your scene.

(3) Functionally: It just won’t work. You’ve seen the docs, and you’ve seen how Unity behaves. Two colliders without rigidbodies won’t interact.