protected List <Vector2> GetBlockedCoordinates() { int length = 3; List <Vector2> blockedCoordinates = new List <Vector2> (); Vector2 baseCoordinateAddition = new Vector2(0, 0); Vector2 minimumValue = new Vector2(0, 0); Vector2 maximumValue = new Vector2(0, 0); Vector2 increment = new Vector2(0, 0); if (_movementCoordinator.Dir == 0 || _movementCoordinator.Dir == 180) { baseCoordinateAddition = _movementCoordinator.Dir == 0 ? Vector2.right : Vector2.left; minimumValue = Vector2.up; maximumValue = Vector2.down; } else { baseCoordinateAddition = _movementCoordinator.Dir == 90 ? Vector2.up : Vector2.down; minimumValue = Vector2.left; maximumValue = Vector2.right; } increment = maximumValue; minimumValue *= length; maximumValue *= length; Vector2 baseCoordinate = (Vector2)transform.position + baseCoordinateAddition; Vector2 currentPosition = baseCoordinate + minimumValue; for (int i = 0; i < 2 * length + 1; i++) { blockedCoordinates.Add(_tilemapManager.WorldPosToTilePos(currentPosition)); currentPosition += increment; } return(blockedCoordinates); }