public void Init(Vector3 tileSize)
 {
     defaultCameraLocation = this.gameObject.transform.position;
     desiredLocation       = defaultCameraLocation;
     playerControlled      = new PlayerControlledCamera(this, mainCamera, tileSize);
     panningToCharacter    = new PanningToCharacter(this, mainCamera);
     cameraFollowPlayer    = new Following(this, mainCamera);
     frozenCamera          = new Frozen(this, mainCamera);
 }
 public void SwitchToFrozenMode()
 {
     curCameraState = frozenCamera;
 }
 public void SwitchToFollowMode()
 {
     curCameraState = cameraFollowPlayer;
 }
 public void SwitchToPanCamera()
 {
     curCameraState = panningToCharacter;
 }
 public void SwitchToPlayerControlled()
 {
     curCameraState = playerControlled;
 }