diff --git a/Assets/Editor/Window/AnimationClipGeneratorCore.cs b/Assets/Editor/Window/AnimationClipGeneratorCore.cs index d566e85d1..9776a6e26 100644 --- a/Assets/Editor/Window/AnimationClipGeneratorCore.cs +++ b/Assets/Editor/Window/AnimationClipGeneratorCore.cs @@ -533,6 +533,16 @@ namespace AibisDream.SystemEditor settings.loopTime = animationData.loop; AnimationUtility.SetAnimationClipSettings(clip, settings); + // 强制更新动画长度 (m_StopTime) - 修复复用已有 clip 时长度未更新的问题 + float totalDuration = keyframes.Count > 0 ? keyframes[keyframes.Count - 1].time : 0f; + SerializedObject serializedClip = new SerializedObject(clip); + SerializedProperty stopTimeProp = serializedClip.FindProperty("m_StopTime"); + if (stopTimeProp != null) + { + stopTimeProp.floatValue = totalDuration; + serializedClip.ApplyModifiedProperties(); + } + // 保存 / 更新 AnimationClip 资源 if (isNewClip) {