void GetNewTarget() { Vector3 dir; switch (moveDirection) { case Direction.Up: dir = Vector3.forward; break; case Direction.Down: dir = Vector3.back; break; case Direction.Left: dir = Vector3.left; break; case Direction.Right: dir = Vector3.right; break; default: return; } dir += Vector3.down * .5f; RaycastHit hit; if (Physics.Raycast(transform.position, dir, out hit, 2)) { /*if(hit.transform.CompareTag("Enemy")) * { * Die(); * return; * }*/ GridElement element = hit.transform.GetComponent <GridElement>(); if (element) { if (element.MyType == GridElementType.Empty || element.MyType == GridElementType.ColorFilled) { targetPosition = element.transform.position + (Vector3.up); } else if (element.MyType == GridElementType.TrailFill) { Die(); } if (element.MyType == GridElementType.Wall || element.MyType == GridElementType.ColorFilled) { if (element.MyType == GridElementType.Wall) { moveDirection = Direction.Nan; } if (Physics.Raycast(transform.position, Vector3.down, out hit, 2)) { element = hit.transform.GetComponent <GridElement>(); if (element) { //element.transform.position += Vector3.up*3; if (element.MyType == GridElementType.TrailFill || element.MyType == GridElementType.ColorFilled) { element.FindSmallestEnclosedAreaAndFillIt(); GameManager.instance.ActiveGrid.CheckFilledCellCount(); } } } } } } else { Debug.LogError("Error Code 0"); transform.position = startingPosition; } }