Question by 
               rohitsuratekar · Feb 20, 2017 at 07:33 PM · 
                gameobjectinstantiatedestroy  
              
 
              Unable to delete instance of GameObject
I am hitting my head with this problem. I have tried a LOT of answers from this forum but none of it actually helped. I am trying build classical snake game in 3D. I am creating instances of my PreFab and trying to delete them as my snake moves. I am storing instances in List and then trying to delete last item added. However I am not able to do so. Here is my code
public class SnakeController : MonoBehaviour {
 public float swpanTime = 0.5f;
 public GameObject body;
 public GameObject fruit;
 private List<GameObject> allParts = new List<GameObject>();
 private Vector3 direction;
 void Start () {
     direction = transform.forward;
     Invoke("MoveSnake", swpanTime);
     Instantiate(fruit, gameObject.transform.position, Quaternion.identity);
 }
 void MoveSnake()
 {
     Vector3 loc = transform.position;
     transform.position += direction;
     GameObject newPart =  Instantiate(body, loc, Quaternion.identity);
     allParts.Insert(0,newPart);
     if (allParts.Count > 1)
     {
         Destroy(allParts[allParts.Count - 1]); //This line is not working!!
     }
     allParts.RemoveAt(allParts.Count - 1);
     Invoke("MoveSnake", swpanTime);
 }
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.Equals(GameObject.Find("Fruit")))
     {
         allParts.Add(allParts[allParts.Count - 1]);
         Destroy(other.gameObject);
         Vector3 position = new Vector3(Random.Range(10f, 10F), 0, Random.Range(10F, 10F));
         Instantiate(fruit, position, Quaternion.identity);
     }
 }
 // Update is called once per frame
 void Update () {
     if (Input.GetKey(KeyCode.LeftArrow))
     {
         direction = -transform.right;
     } else if (Input.GetKey(KeyCode.RightArrow))
     {
         direction = transform.right;
     } else if (Input.GetKey(KeyCode.UpArrow))
     {
         direction = transform.forward;
     } else if (Input.GetKey(KeyCode.DownArrow))
     {
         direction = -transform.forward;
     }
 }
}
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Canon Ball shooting with Instiate 1 Answer
instantiate gameobject after destroyed 0 Answers
How to destroy on exiting PlayMode/EditMode? 1 Answer
Instantiate() and Destroy() vs setActive() 1 Answer
How to destroy instatiate objects? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                