the object is not destroyed to the preset value

Hello to all! I ask in advance sorry for my bad English (I use google translate: () I would like to know why the value of the variable object is not destroyed

using UnityEngine;
using System.Collections;



public class  des   : MonoBehaviour
{
	public int vita = 100;
	public GameObject oggetto;
	private void OnCollisionEnter(Collision c )
	{
		vita +=1;// add one value
		if(vita == 5) // if value == 5
		{
		GameObject.Destroy (this.gameObject);// not work
		Instantiate(oggetto, transform.position, Quaternion.identity); // not work 
		}



	}
}

Change

GameObject.Destroy(...)

to

Destroy(...)

and you might need to change

this.gameObject

to

c.gameObject

but not sure - are you trying to destroy the gameobject the script is attached to, or the gameobject that hit the CollisionEnter?

If you wanted to destroy this.gameObject, move the instantiate line above that so it instantiates first before destroying (itself)