My game features enemies which, when shot, drop collectible items. If an enemy is in the air when it is shot, its collectible needs to fall to the ground. For this, I’ve added a rigidbody and a collider to my collectible. However, because these are collectibles, I need my player to seamlessly run through the object without having an interruption of his motion when he bumps into it. I’ve tried turning off physics between my player and the collectible, but then I can’t detect OnTriggerEnter. It seems to me that I can’t have my cake and eat it too - either I can have no collisions (and not pick it up) or have collisions (and hit it like a brick wall when I pick it up). Neither is acceptable.
You could try having two colliders and set up the layers so that one collider only interacts with the ground and the other is a trigger that only interacts with the player. This will also let you adjust the pickup radius of the object.
You can add layers to your objects and set up which layer can collide with which layer. (Layer collision matrix)
You what @ShadyProductions said and use an if statement to detect if the position of the player and the position of the item is the same ( or use Pythagoras theoram to find the distance between those two and check if it is within reach).
Just a note for anyone who might be looking for ideas in the future, I kept working on this problem before the winning answer came in. What I ended up doing was creating a script that allowed my rigidbody to use gravity and fall until my object hit something, and then OnTriggerEnter turned off gravity and deactivated my collider (leaving the trigger on).