// 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(); }