// Update is called once per frame void LateUpdate() { switch (m_state) { case Feature.Move: ProgressiveMovement.Move(ref m_cameraData, trackPos); break; case Feature.Track: { if (m_player != null) { PositionTracking.Tracking(ref m_cameraData, m_player.transform.position); } break; } case Feature.ZoomAmount: Zooming.ZoomInOutAmount(ref m_cameraData); break; case Feature.ZoomTime: Zooming.ZoomInOutTime(ref m_cameraData); break; case Feature.ZoomPosition: Zooming.ZoomInOutPosition(ref m_cameraData, trackPos); break; default: break; } transform.position = m_cameraData.GetPosition(); }
public static void ZoomInOutPosition(ref CameraData t_data, Vector3 t_position) { float distance = Globals.Magnitude(t_data.GetPosition() - t_position); float time = distance / t_data.GetInitialSpeed(); t_data.SetTimeForZoom(time); ProgressiveMovement.Move(ref t_data, t_position); ZoomInOutTime(ref t_data); }