public void ChangeState(CameraState state, TriggerCamera.CameraMovementData movement)
    {
        switch (state)
        {
        case CameraState.Normal:
            SetDefaultValues();
            break;

        case CameraState.NormalWithDifferentTarget:
            SetNewTarget(movement);
            break;

        case CameraState.Zoomed:
            SetZoomedValues(movement);
            break;

        case CameraState.TargetZoom:
            TargetedZoom(movement);
            break;

        case CameraState.TargetZoomInCutscene:
            SetDataTargetZoomInCutscene(movement);
            break;

        default:
            return;
        }
    }
    public void SetZoomedValues(TriggerCamera.CameraMovementData movement)
    {
        currentState = movement.state;
        thisCamera.orthographicSize = movement.ortographic_size;
        transform.position          = new Vector3(movement.target.transform.position.x, movement.target.transform.position.y, transform.position.z);

        //ToggleChat(movement.hideChat);
        ToggleCanvas(movement.hideCanvas);
    }
    public void SetNewTarget(TriggerCamera.CameraMovementData cameraMovement)
    {
        thisCamera.orthographicSize = cameraMovement.ortographic_size;
        currentState = CameraState.NormalWithDifferentTarget;

        target       = cameraMovement.target;
        smoothCamera = 3.9f;
        followAhead  = 0;
        followUp     = 0;

        stepsToTarget = 100;
        initialSize   = 2.8f;

        ToggleCanvas(true);
        //ToggleChat(cameraMovement.hideCanvas);
    }
    private void TargetedZoom(TriggerCamera.CameraMovementData movement)
    {
        if (movement.playerCantMove == true)
        {
            levelManager.localPlayer.StopMoving();
        }
        if (movement.hideCanvas)
        {
            ToggleCanvas(false);
        }

        globalFreezeTime = movement.freezeTime;
        Vector3 targetPosition = new Vector3(movement.target.transform.position.x, movement.target.transform.position.y, -10);

        currentState = CameraState.TargetZoom;

        currentStepPos = (targetPosition - transform.position) / movement.stepsToTarget;
        cameraRate     = (movement.ortographic_size - initialSize) / movement.stepsToTarget;
        zoomSteps      = 0;
    }
    public void SetDataTargetZoomInCutscene(TriggerCamera.CameraMovementData cutSceneMovement)
    {
        if (cutSceneMovement.playerCantMove == true)
        {
            levelManager.localPlayer.StopMoving();
        }
        if (cutSceneMovement.hideCanvas)
        {
            ToggleCanvas(false);
        }
        globalFreezeTime = cutSceneMovement.freezeTime;
        target           = cutSceneMovement.target;
        Vector3 targetPosition = new Vector3(target.transform.position.x, target.transform.position.y, target.transform.position.z);

        currentState = cutSceneMovement.state;

        currentStepPos = (targetPosition - transform.position) / cutSceneMovement.stepsToTarget;
        cameraRate     = (cutSceneMovement.ortographic_size - initialSize) / stepsToTarget;
        zoomSteps      = 0;
        currentState   = cutSceneMovement.state;
    }