From e321c30c1d06204e0a631168d35c8803b696c71e Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 3 Sep 2021 14:31:31 +0200 Subject: [PATCH] Fix crash on NestedSceneAnimationTrack load without timeline --- .../Tracks/NestedSceneAnimationTrack.cs | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Source/Editor/GUI/Timeline/Tracks/NestedSceneAnimationTrack.cs b/Source/Editor/GUI/Timeline/Tracks/NestedSceneAnimationTrack.cs index d42b06d9b..df24b0d5c 100644 --- a/Source/Editor/GUI/Timeline/Tracks/NestedSceneAnimationTrack.cs +++ b/Source/Editor/GUI/Timeline/Tracks/NestedSceneAnimationTrack.cs @@ -128,18 +128,31 @@ namespace FlaxEditor.GUI.Timeline.Tracks /// protected override void OnAssetChanged() { - if (Asset) + base.OnAssetChanged(); + + CheckCyclicReferences(); + } + + /// + public override void OnTimelineChanged(Timeline timeline) + { + base.OnTimelineChanged(timeline); + + CheckCyclicReferences(); + } + + private void CheckCyclicReferences() + { + if (Asset && Timeline is SceneAnimationTimeline timeline) { var refs = Asset.GetReferences(); - var id = ((SceneAnimationTimeline)Timeline)._id; + var id = timeline._id; if (Asset.ID == id || refs.Contains(id)) { Asset = null; throw new Exception("Cannot use nested scene animation (recursion)."); } } - - base.OnAssetChanged(); } } }