예제 #1
0
    //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)]);
        }
    }