Search Issue Tracker
By Design
Votes
8
Found in [Package]
1.4.8
1.6.4
1.7.4
1.8.2
Issue ID
TB-194
Regression
No
Embedded Timeline Clips are not being played by the parent Timeline clip when entering the Play Mode
How to reproduce:
1. Open the "IN_33987" project
2. Open the "SampleScene"
3. Enter the Play Mode
4. Observe the Console
Expected result: info messages "First Track" and "Second Track" are thrown and both Timelines are played
Actual result: info message "First Track" is thrown and only one Timeline is played
Reproducible with: 1.4.8 (2020.3.47f1), 1.6.4 (2021.3.22f1), 1.7.4 (2022.2.14f1), 1.8.2 (2023.1.0b11, 2023.2.0a9)
Reproducible on: Windows 10 Pro
Note: also reproducible in the Player
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Rigidbody2D.Slide API does not have the needed configuration when creating a 2D Top-Down character controller
- Opening reference for "Playables"component redirects to a missing page
- Sprite Renderer image is changed when switching Mask Interaction and changing Sprite to a shared Sprite
- An unsigned integer is not compared with an integer correctly in player when using IL2CPP backend
- Graphical artifacts are being rendered in Scenes that are loaded during run-time when GPU Resident Drawer is turned on
Resolution Note:
The behaviour here is by design.
The issue is occurring due to the Timeline Asset's Playable having a Passthrough traveral mode. We create all Timeline Asset Playables like this. With the kind of setup presented in this report there's an extra clip playable in between the two Timeline Playables. The 'child' timeline has two outputs that are passed through but the intermediary clip expects 1 input (EmbeddedTimelineClip's playable). It accepts the first output (which prints "First Track") but the second is ignored.
A workaround is to manually set the Timelien Playable's traversal mode to Mix.
[Serializable]
public class EmbeddedTimelineClip : PlayableAsset
{
[SerializeField] private TimelineAsset _timelineAsset;
public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
{
if (!_timelineAsset)
return Playable.Null;
Playable playable = _timelineAsset.CreatePlayable(graph, owner);
playable.SetTraversalMode(PlayableTraversalMode.Mix);
return playable;
}
}
I've discussed this with the reporter and it fixes their issue.