I would think the way to do this is to use textured planes pointing toward the camera to display the NPC's. You would then raycast from the tip of the player's gun, following the angle of the gun out a certain distance and you would check (via raycast) to see if any of the NPC planes are intersected (and the walls too, of course). I suppose you could use the Intersect Object command to do the same thing.
I have no idea what you are talking about with regard to a 2D map and I can't see how pick object would help with that.
So many games to code.....so little time.