Как вариант, постоянно проверяем дистанцию к каждому предмету который можно подобрать. И если это дистанция меньше, чем дистанция подбора то кнопка отображается, иначе скрыть. Тоже самое когда нажимаешь подобрать, оно проверяет дистанцию и подбираем всё что находиться в зоне подбора.
К примеру
void update(){
int takeDist = 100;//зона подбора
bool isShowBtn = items.where(it=> getDist(player.x,player.y,it.x,it.y) <= takeDist ).count() > 0;
if(isShowBtn)
//show btn
else
//hide
}
public static double getDist(float x,float y,float x1,float y1){
return Math.Sqrt(Math.Pow(x1-x,2) + Math.Pow(y1-y,2));
}