private void AddCheckpoint() { var targetPosition = GetNearestRoom(transform.position); var screenWidth = 2 * cameraMovement.cameraWidth; var screenHeight = 2 * cameraMovement.cameraHeight; var originPosition = targetPosition; if (fromTop) { originPosition += new Vector2(0, screenHeight); } else if (fromLeft) { originPosition += new Vector2(-screenWidth, 0); } else if (fromRight) { originPosition += new Vector2(screenWidth, 0); } else if (fromBottom) { originPosition += new Vector2(0, -screenHeight); } var key = new CheckpointKey(targetPosition.x, targetPosition.y, originPosition.x, originPosition.y); checkpoints.Add(key, transform.position); }
public static Vector2 GetCurrentCheckpoint(float targetX, float targetY, float originX, float originY) { var key = new CheckpointKey(targetX, targetY, originX, originY); return(checkpoints[key]); }