//---------------------------------------------------------------------------- // Zoom //---------------------------------------------------------------------------- #region Zoom /// <summary> /// Self Explanatory purpose <para /> /// Updates ZoomControlled based on input and clamps it <para /> /// Lerps ZoomLerped to ZoomControlled <para /> /// /// Keeps the camera the right offset from FocusLerped based on ZoomLerped <para /> /// </summary> public void UpdateZoomVariables() { ZoomControlled += MyBattleCamInput.ZoomInput() * ZoomSpeed * DefaultZoomSpeed; ZoomControlled = Mathf.Clamp(ZoomControlled, MinimumZoom, MaximumZoom); ZoomLerped = Mathf.Lerp(ZoomLerped, ZoomControlled, Time.deltaTime * ZoomLerpSpeed); }
//---------------------------------------------------------------------------- // Translate //---------------------------------------------------------------------------- #region Translate public void TranslateFocus() { float deltaX = MyBattleCamInput.TranslateRightInput(); float deltaZ = MyBattleCamInput.TranslateForwardInput(); //If zooming the opposite direction of travelling, increase travel speed so it stays roughly constant if (MyBattleCamInput.ZoomInput() * MyBattleCamInput.TranslateForwardInput() > 0) { deltaZ += MyBattleCamInput.ZoomInput() * DefaultZoomCorrection; } Vector3 deltaTranslate = new Vector3(0, 0, 0); deltaTranslate += deltaX * FocusControlled.right; deltaTranslate += deltaZ * FocusControlled.forward; deltaTranslate = deltaTranslate * Time.deltaTime * AltitudeSpeed * DefaultTranslationSpeed * TranslationSpeed; FocusControlled.position += deltaTranslate; }
//---------------------------------------------------------------------------- // Rotate //---------------------------------------------------------------------------- #region Rotate /// <summary> /// Rotate FocusControlled around its y axis <para /> /// This means the camera rotates around whatever its looking at /// </summary> public void RotateFocus() { float rot = MyBattleCamInput.RotationInput() * Time.deltaTime * RotationSpeed * DefaultRotationSpeed; FocusControlled.Rotate(0, rot, 0); }