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);