Object gets Destroyed instead of deactivated

Hey I’m pretty new to programming in C# and I can’t figure out how to fix that problem here.
I’ve a game object called Shield.

 void Start()
    {
		shield = GameObject.Find ("Shield");

		if(shield == null)
		{
			Debug.Log ("No shield there");
		}
    }

This Shield is in my game as the Debug.Log reports no Error.

But it changes, when I want to deactivate the shield through a shot.

  void OnTriggerEnter(Collider other)
    {

		if (other.CompareTag("Boundary") || other.CompareTag("Enemy"))
        {
            return;
        }

		if (explosion != null)
        {
			if (health > 0) 
			{
				health -= 1;
				Destroy (other.gameObject);
			}

			if (health == 0)
			{
				Instantiate (explosion, transform.position, transform.rotation);
				gameController.AddScore(scoreValue);
				Destroy (other.gameObject);
				Destroy(gameObject);
			}

			if (other.CompareTag ("Shield"))
			{
				shield.SetActive (false);
			}
        }

After this the Debug.Log shows “No shield there” so my game object must have been destroyed.

Is it destroyed, because I put the function into a “destroy-allmost-everything-the-collider-touches” and if yes how can I make a exception to not destroy this shield but to deactivate it?

I tried to put the Shield into the
If() {return;}
function, but then it ignores all trigger enters.

It would be really cool if someone could help me.

The object gets destroyed because you said

 Destroy(gameObject);

at line 23. Try deleting this line.