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(); }
/// <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); }
public static void CameraSteadyCamActivation(TargetParameters.SteadyCamParameters parameters) { CameraSteadyCamActivationEvent.Invoke(parameters); }
/// <summary> /// Activate the SteadyCam simulation on the camera. /// </summary> private void ActivateSteadyCam(TargetParameters.SteadyCamParameters parameters) { UsingSteadyCam = true; steadyCamParameters = parameters; steadyCamCoroutine = StartCoroutine(SimulateSteadyCamMoving()); }
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; } }