From 39b89ada6c2346c7cee41eda825f1d65b1c960f0 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 25 Apr 2023 10:59:31 +0200 Subject: [PATCH] Fix Anim Graph state machine rule graph opening after transition removal undo --- Source/Editor/Surface/Archetypes/Animation.StateMachine.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Editor/Surface/Archetypes/Animation.StateMachine.cs b/Source/Editor/Surface/Archetypes/Animation.StateMachine.cs index c56b5dfe4..7e547c326 100644 --- a/Source/Editor/Surface/Archetypes/Animation.StateMachine.cs +++ b/Source/Editor/Surface/Archetypes/Animation.StateMachine.cs @@ -543,6 +543,7 @@ namespace FlaxEditor.Surface.Archetypes private readonly uint _srcStateId; private readonly uint _dstStateId; private StateMachineTransition.Data _data; + private byte[] _ruleGraph; public AddRemoveTransitionAction(StateMachineTransition transition) { @@ -552,6 +553,7 @@ namespace FlaxEditor.Surface.Archetypes _dstStateId = transition.DestinationState.ID; _isAdd = false; transition.GetData(out _data); + _ruleGraph = (byte[])transition.RuleGraph.Clone(); } public AddRemoveTransitionAction(SurfaceNode src, SurfaceNode dst) @@ -603,7 +605,7 @@ namespace FlaxEditor.Surface.Archetypes if (dst == null) throw new Exception("Missing destination state."); - var transition = new StateMachineTransition(src, dst, ref _data); + var transition = new StateMachineTransition(src, dst, ref _data, _ruleGraph); src.Transitions.Add(transition); src.UpdateTransitionsOrder(); @@ -641,6 +643,8 @@ namespace FlaxEditor.Surface.Archetypes public void Dispose() { _surface = null; + _context = new ContextHandle(); + _ruleGraph = null; } }