my destroy wall code keeps destroying entire object for good

this script does kill gameobject after contact but it kills even the future ones

I want it to kill the one that touches wall only not all I want it to keep instantiating them but it stops because this script kills it off entirely

using UnityEngine;
using System.Collections;

public class wall5killfish : MonoBehaviour {
//public Rigidbody2D projectile;
//private Rigidbody2D projectileInstance = null;

	void Start()
	{
	}

	//void OnCollisionEnter2D(Collision2D other)
	void OnTriggerEnter2D(Collider2D other) 
	{

		if (other.gameObject.tag == "wall5") 
		{
		//Destroy(projectileInstance.gameObject);
			Destroy (gameObject);
			//if the bird collides with something set it to dead...
			//isDead = true;
			//GetComponent<AudioSource> ().Play ();
		}
	}
}

the script kills itself…

because you forgot to put other. in front of gameObject

Destroy(other.gameObject);

public class ObjectPool : MonoBehaviour
{
public static ObjectPool current;
public GameObject prefabs;
public List pooledObjects;
public int amountToBuffer;
public int defaultBufferAmount = 10;
public bool canGrow = true;
GameObject containerObject;
void Awake ()
{
if (current == null)
current = this;
else
Destroy(gameObject);
containerObject = new GameObject(“ObjectPool”);
pooledObjects = new List[prefabs.Length];
int index = 0;
foreach ( GameObject objectPrefab in prefabs )
{
pooledObjects[index] = new List();
int bufferAmount;
if(index < amountToBuffer.Length)
bufferAmount = amountToBuffer[index];
else
bufferAmount = defaultBufferAmount;
for ( int i = 0; i < bufferAmount; i++)
{
GameObject obj = (GameObject)Instantiate(objectPrefab);
obj.name = objectPrefab.name;
PoolObject(obj);
}
index++;
}
}
public GameObject GetObject( GameObject objectType)
{
for(int i=0; i<prefabs.Length; i++)
{
GameObject prefab = prefabs*;*

  •  	if(prefab.name == objectType.name)*
    
  •  	{*
    

_ if(pooledObjects*.Count > 0)_
_
{_
_ GameObject pooledObject = pooledObjects[0];
pooledObjects.RemoveAt(0);
pooledObject.transform.parent = null;
return pooledObject;
}
else if(canGrow)
{
Debug.Log("pool grew when requesting: " + objectType + “. consider expanding default size.”);_

_GameObject obj = Instantiate(prefabs) as GameObject;*_

_ obj.name = prefabs*.name;
return obj;
}
break;
}
}
return null;
}
public void PoolObject ( GameObject obj )
{
for ( int i=0; i<prefabs.Length; i++)
{
if(prefabs.name == obj.name)
{
obj.SetActive(true);
obj.transform.parent = containerObject.transform;
pooledObjects.Add(obj);
return;
}
}
}
}*_