public void Move(Direction direction) { Debug.Log(direction); if (!canSlide) { return; } if (!map.CanSlide()) { return; } var switchTile = false; switch (direction) { case Direction.Left: if (currentPosition.x > 0) { currentPosition.x--; switchTile = true; } break; case Direction.Right: if (currentPosition.x < width - 1) { currentPosition.x++; switchTile = true; } break; case Direction.Up: if (currentPosition.y < height - 1) { currentPosition.y++; switchTile = true; } break; case Direction.Down: if (currentPosition.y > 0) { currentPosition.y--; switchTile = true; } break; } if (switchTile) { map.Slide(direction); currentTile.OnLeave(); currentTile = mapTiles[currentPosition.x][currentPosition.y]; currentTile.OnGoto(); CharacterGroup.instance.timmy.sadness += 2; CharacterGroup.instance.sister.sadness += 2; CharacterGroup.instance.uncle.sadness += 2; CharacterGroup.instance.grandpa.sadness += 2; } hasTeleported = false; }