There are some situations where trigger objects are the way to go, but for what you describe you can use the distance expression to see if the player is within a certain distance of the other thing. Create a system event using the compare two values condition:
system-> distance(player.x,player.y,thing.x,thing.y)<=thing.reach
where reach is an instance variable created on the thing object(s) that contains how close to the thing the player has to be to reach it to interact with it.
At first I thought it would be better to put "reach" on the player, but you may have to be closer to some objects than others, so it would be better to have it on the thing.
If you have many different kinds of objects, and are using the paid version you can put all of your interactive objects in a family and create the "reach" instance variable on it. Otherwise you'll have to create the "reach" instance variable on each type of object you want the player to interact with in this way. But that is a lot better than having to create a bunch of trigger objects!