Example #1
0
    private void Awake()
    {
        Camera = transform.GetChild(0);
        if (Camera == null)
        {
            Debug.LogError("Error: the transform with the Camera component must be a child of " + gameObject.name);
        }

        CameraEventSystem.SetCameraStaticTargetPositionEvent += SetCameraStaticTargetPosition;
        CameraEventSystem.SetCameraStaticTargetRotationEvent += SetCameraStaticTargetRotation;

        CameraEventSystem.CameraTargetPositionReachedEvent += CameraTargetPositionReached;
        CameraEventSystem.CameraTargetRotationReachedEvent += CameraTargetRotationReached;

        CameraEventSystem.SetCameraDynamicTargetPositionEvent += SetCameraDynamicTargetPosition;
        CameraEventSystem.SetCameraDynamicTargetRotationEvent += SetCameraDynamicTargetRotation;

        CameraEventSystem.CameraSteadyCamActivationEvent += ActivateSteadyCam;

        steadyCamParameters = TargetParameters.GetDefaultSteadyCamParameters();
    }
Example #2
0
    /// <summary>
    /// The camera has reached the target rotation.
    /// </summary>
    private void CameraTargetRotationReached(CameraTarget target, TargetParameters.StaticTargetRotationParameters parameters)
    {
        Rotating = false;
        Debug.Log("ROTATION REACHED");

        switch (parameters.SteadyCamOnEnd)
        {
        case SteadyCamBehaviour.Ignore:
            return;

        case SteadyCamBehaviour.TurnOnAndOverride:
            if (steadyCamCoroutine == null)
            {
                ActivateSteadyCam(parameters.EndSCParameters);
            }
            else
            {
                steadyCamParameters = parameters.EndSCParameters;
            }
            break;

        case SteadyCamBehaviour.TurnOff:
            if (steadyCamCoroutine != null)
            {
                StopCoroutine(steadyCamCoroutine);
                StartCoroutine(RecenterCamera());
            }
            break;

        case SteadyCamBehaviour.OverrideIfOn:
            if (steadyCamCoroutine != null)
            {
                steadyCamParameters = parameters.EndSCParameters;
            }
            break;
        }

        Debug.Log(rotationCoroutine != null);
    }
Example #3
0
 public static void CameraSteadyCamActivation(TargetParameters.SteadyCamParameters parameters)
 {
     CameraSteadyCamActivationEvent.Invoke(parameters);
 }
Example #4
0
 /// <summary>
 /// Activate the SteadyCam simulation on the camera.
 /// </summary>
 private void ActivateSteadyCam(TargetParameters.SteadyCamParameters parameters)
 {
     UsingSteadyCam      = true;
     steadyCamParameters = parameters;
     steadyCamCoroutine  = StartCoroutine(SimulateSteadyCamMoving());
 }
Example #5
0
    private void SetCameraStaticTargetRotation(CameraTarget target, TargetParameters.StaticTargetRotationParameters parameters)
    {
        if (rotationCoroutine != null)
        {
            StopCoroutine(rotationCoroutine);
        }

        switch (parameters.CameraExecutionMode)
        {
        case CameraExecutionMode.Immediate:
            ImmediateRotating(target, parameters);
            break;

        case CameraExecutionMode.ConstantLerp:
            rotationCoroutine = StartCoroutine(ConstantLerpRotating(target, parameters));
            break;

        case CameraExecutionMode.NormalLerp:
            rotationCoroutine = StartCoroutine(NormalLerpRotating(target, parameters));
            break;

        case CameraExecutionMode.SmoothLerp:
            rotationCoroutine = StartCoroutine(SmoothLerpRotating(target, parameters));
            break;

        case CameraExecutionMode.CustomLerp:
            rotationCoroutine = StartCoroutine(customStaticRotatingLerp(target, parameters));
            break;
        }

        Rotating = true;

        switch (parameters.SteadyCamOnStart)
        {
        case SteadyCamBehaviour.Ignore:
            return;

        case SteadyCamBehaviour.TurnOnAndOverride:
            if (steadyCamCoroutine == null)
            {
                ActivateSteadyCam(parameters.StartSCParameters);
            }
            else
            {
                steadyCamParameters = parameters.StartSCParameters;
            }
            break;

        case SteadyCamBehaviour.TurnOff:
            if (steadyCamCoroutine != null)
            {
                StopCoroutine(steadyCamCoroutine);
                StartCoroutine(RecenterCamera());
            }
            break;

        case SteadyCamBehaviour.OverrideIfOn:
            if (steadyCamCoroutine != null)
            {
                steadyCamParameters = parameters.StartSCParameters;
            }
            break;
        }
    }