We are using Timeline to create cutscenes and tutorials. When we wait for player input (e.g. showing a dialog), we pause the PlayableDirector. Once the player is done, we resume the Timeline.
We expected that when pausing the timeline, the camera would stay in its current place (as per the Cinemachine Track, and current CinemachineShot).
The issue we are seeing is that when we call PlayerDirector.Pause, instead of Cinemachine keeping the active Virtual Camera it jumps to use a ‘random’ camera.
We tracked this down to Timeline calling OnGraphStop on each Playable when pausing the timeline. When this happens CinemachineMixer assumes the Timeline fully stopped and releases any overrides it has on the CinemachineBrain.
I couldn’t find a way to tell when the Timeline was paused vs. stopped.
The PlayableDirector has 2 states (Playing or Paused), the Graph has a bool IsPlaying.
It would be nice if the 3 states (Stopped, Playing, Paused) were clearly defined and accessible.