OnTriggerStay2D stops being called?

Is it intended behavior that colliders stop receiving OnTriggerStay2D events after a while (presumably when they stop moving and physics puts them to “sleep”)?

I’m seeing an issue where the event stops being called eventually. A ball falls into a cup, which has a trigger collider. I’m using OnTriggerStay2D with FixedUpdate to build a list of objects in the cup each frame. However, once an object comes to rest, I stop seeing the events.

I’m wondering is this a bug or by-design? Is there a way to disable sleeping on these objects and presumably fix it? In the meantime I’ve added a script that adds a small random force each frame, and this seems to correct the issue. But I’m curious to know if anyone can shed some light on this behavior.


There it is! After reading @tanoshimi comment, I decided to look for a per-object sleep setting… and there it was!

Rigidbody has a Sleeping Mode property. Options are Start Asleep, Start Awake, and Never Sleep.

Fix’d. Thanks for the idea!