//Checks every side with 4 colliders ( 1 position away, 2 positions away, and both corners), checks which spot is possible to move to, //randomly chooses one of the spots and returns the GameObject on that spot. public GameObject Next() { if (right2.GetTouchedObject() != null && rightdown.GetTouchedObject() != null && rightup.GetTouchedObject() != null) { if (right1.GetTouchedObject() != null && right1.GetTouchedObject().tag == "Wall") { possibleObjects.Add(right1.GetTouchedObject()); } } if (left2.GetTouchedObject() != null && leftdown.GetTouchedObject() != null && leftup.GetTouchedObject() != null) { if (left1.GetTouchedObject() != null && left1.GetTouchedObject().tag == "Wall") { possibleObjects.Add(left1.GetTouchedObject()); } } if (up2.GetTouchedObject() != null && rightup.GetTouchedObject() != null && leftup.GetTouchedObject() != null) { if (up1.GetTouchedObject() != null && up1.GetTouchedObject().tag == "Wall") { possibleObjects.Add(up1.GetTouchedObject()); } } if (down2.GetTouchedObject() != null && rightdown.GetTouchedObject() != null && leftdown.GetTouchedObject() != null) { if (down1.GetTouchedObject() != null && down1.GetTouchedObject().tag == "Wall") { possibleObjects.Add(down1.GetTouchedObject()); } } //Sets all touchedObject's on all TouchCheck scripts to null. SetNullAllColliders(); if (possibleObjects.Count == 0) { return(null); } else { return(possibleObjects[Random.Range(0, possibleObjects.Count)]); } }