Tips and tricks for using PlayableDirector in Manual update mode

The documentation on this is pretty sparse and infuriating so I’m including the completely undocumented things you need to do to actually control a PlayableDirector manually.

The main thing you’re probably missing is that you always callplayableDirector.DeferredEvaluate() once per frame.

  • Set your Update Mode to Manual.
  • In an Update function, call playableDirector.DeferredEvaluate();
  • If you want to advance the whole director, use playableDirector.time += yourDeltaTime.
  • If you want to use the PlayableGraph object, for whatever reason, you must rebuild the graph at least once (try doing it in Start / Awake) or whenever your playable asset changes:
playableDirector.RebuildGraph();
playableDirector.playableGraph.SetTimeUpdateMode(DirectorUpdateMode.Manual);
6 Likes