Quick answer: On the Effector, tick Use Collider Mask and set the Layer Mask to only the bodies you want affected. On the same Collider2D, tick Used By Effector. Without both, the effector acts on everything inside.
A water Buoyancy Effector floats every body that walks in — player, enemies, dropped items. You want only floatable boats. Layer mask exists; you forgot to tick Use Collider Mask.
The Symptom
2D effector applies forces to bodies that should be ignored. Layer Mask field is set but ignored.
The Fix
BuoyancyEffector2D:
Density: 2
Linear Drag: 1
Angular Drag: 5
Use Collider Mask: true // THIS
Collider Mask: Boat, Item // excludes Player and Enemy
BoxCollider2D (same GameObject):
Is Trigger: true
Used By Effector: true // THIS
Use Collider Mask + Collider Mask filters which bodies receive the effector force. Used By Effector tells the collider it’s the effector’s footprint.
Effector Types
- Area Effector 2D — constant force in a region (wind tunnel).
- Buoyancy Effector 2D — water; lifts based on density.
- Surface Effector 2D — conveyor belt, requires non-trigger.
- Point Effector 2D — attractive/repulsive radial force.
- Platform Effector 2D — one-way platforms.
All have Use Collider Mask + Collider Mask. Set both per-effector.
Verifying
Drop player, enemy, and boat into the water. Only boat floats. Add Debug.Log on entry to confirm the effector activates the right bodies.
“Use Collider Mask. Used By Effector. Layer mask filters.”
Related Issues
For Physics2D OverlapCircle, see overlap stale. For trigger exit on disable, see trigger exit.
Both flags. Mask filters.