How can I detect if my game object (player) is near an object with a specific tag?

I can detect single objects like this:

 float distance = Vector3.Distance (plyr.transform.position, transform.position); 
    if (distance <= maxRange) {
    GameObject.Find ("Action Text").guiText.text = "Press (E) to interact";
    }

But what about multiple objects based on their tags?

you can check against each of them in the loop, here is a logic

  1. Use Unity FindGameObjectsWithTag
  2. You will get array of object (obviously if they found)
  3. check the distance from player to those objects
  4. if distance in range of
  5. Then user is close to particular object from all of those in array

But it is not good implementation as it is very compute intensive, as basically each update you will have to find all those objects, calculate distance to them compre if distance is in range of “close range” and blah blah blah

What you should do is to attach to each of your objects collider and trigger an event from exact object once it collide with Player
you can set to player - “Player” tag and on collision event check if collided object is player then allow to player to do whatever you want with that object which triggers
that is optimal solution