/// <summary>Transition to cinematic camera for attack.</summary>
    /// <param name="LoR">Direction, Left or Right, for the camera that will be focused</param>
    /// <param name="type">Type of attack that will be passed to the cinematic class to show the proper animations</param>
    /// <returns>Returns whether the transition was processed sucessfully (Are inputs being blocked?)</returns>
    public bool Transition(Direction LoR, CinematicType type)
    {
        if (blockInputs || classState == CameraState.Full)
        {
            return(false);
        }

        //If transitioning to fullscreen left
        if (LoR == Direction.Left)
        {
            leftCamera.material.SetTexture("_Mask", fullScreen);
            leftCamera.transform.SetAsFirstSibling();
            director.PlayCutscene(LoR, type);
        }
        //If transitioning to fullscreen right
        else
        {
            rightCamera.material.SetTexture("_Mask", fullScreen);
            rightCamera.transform.SetAsFirstSibling();
            director.PlayCutscene(LoR, type);
        }

        StartCoroutine(SwitchCameras(LoR, CameraState.Split));
        classState = CameraState.Full;
        return(true);
    }
        public void StartCinematic(CinematicType type)
        {
            if (type < 0)
            {
                return;
            }

            currentCinematic = (int)type;

            if (type == CinematicType.Realtime)
            {
                EventManager.TriggerEvent("Pause", true);
                RealtimeCameraMode(true);
                cinematicTimeline.Play();
            }
            else
            {
                if (videoPlayer.source == VideoSource.VideoClip && videoPlayer.clip == null)
                {
                    Debug.LogWarning("Pre-rendered video clip not set!");
                }
                else
                {
                    EventManager.TriggerEvent("Pause", true);
                    videoPlayer.Play();
                }
            }
        }
    ///<summary>Plays the appropriate cutscene and waits for its completion</summary>
    private IEnumerator PlayAndWaitForCutscene(Direction side, CinematicType cinematic)
    {
        //Play the corresponding timeline
        directors[(int)side, (int)cinematic].Play();
        //Waits for cutscene to finish but also takes into account the transition back to splitscreen time
        yield return(new WaitForSeconds((float)directors[(int)side, (int)cinematic].duration - TransitionCameras.resetTime));

        //Calls the transition back
        trans.Transition(side);
    }
 ///<summary>Start a coroutine that will play the correct cutscene and wait for it to finish</summary>
 public void PlayCutscene(Direction focusedSide, CinematicType cinematicType)
 {
     StartCoroutine(PlayAndWaitForCutscene(focusedSide, cinematicType));
 }
 public void ResetVariables()
 {
     cinematicType = CinematicType.None;
 }