How to make an instance of an object disappear when collided (With the same tag) but not all of them to disappear, just the object the player collided with.

In my game I have coded where each time the user picks up a banana they gain +50 points.

if (other.gameObject.CompareTag("banana")) //if banana is picked up { other.gameObject.SetActive(false); FindObjectOfType<ScoreManager>().updateScore(50); Boost = true; }
However, the problem here is that when i set the banana tag object to false, it hides the upcoming randomly spawned bananas that have been spawned since the object is not active. How do I go about just hiding the specific instance of the banana when it collides, instead of hiding all instances of the banana after the player has collided with one.

The way I would personally do it is to add an OnCollisionEnter function in a script on the banana prefab then check if it is the player and if it is, destroy it/set it inactive:

void OnCollisionEnter(Collision other)
           if (other.gameObject.tag == "Player")
                   Destroy (gameObject);
                   //or gameObject.SetActive(false);

This should just delete the instance rather than all of them. You can also replace OnCollisionEnter(Collision other) with OnTriggerEnter(Collider other) if the bananas have triggers rather than colliders.