/// <summary> /// Move towards destination first in x direction, then in y direction. /// </summary> private void MoveTowardsDestination() { int xDirection = Utility.GetXDirection(transform.position, currentDestination, walkSpeed); Vector2 pos = transform.position; if (xDirection != 0) { transform.position = new Vector2(pos.x + walkSpeed * xDirection, pos.y); } else { int yDirection = Utility.GetYDirection(transform.position, currentDestination, walkSpeed); if (yDirection != 0) { transform.position = new Vector2(pos.x, pos.y + walkSpeed * yDirection); } else { if (farmableTiles.Count == 0) { headedSomewhere = false; return; } //get next position time = 0f; FarmableTile farmableTile = farmableTiles.Dequeue(); goblin.FarmTile(farmableTile); if (farmableTiles.Count == 0) { currentDestination = ogPosition; return; } currentDestination = farmableTiles.Peek().transform.position; } } }