Fixes crash when AnimationPlayer reset on save

This commit is contained in:
Haoyu Qiu 2021-08-12 10:53:35 +08:00
parent 7188cb6012
commit 96f077a18d

View file

@ -1606,7 +1606,9 @@ static void _reset_animation_players(Node *p_node, List<Ref<AnimatedValuesBackup
AnimationPlayer *player = Object::cast_to<AnimationPlayer>(p_node->get_child(i)); AnimationPlayer *player = Object::cast_to<AnimationPlayer>(p_node->get_child(i));
if (player && player->is_reset_on_save_enabled() && player->can_apply_reset()) { if (player && player->is_reset_on_save_enabled() && player->can_apply_reset()) {
Ref<AnimatedValuesBackup> old_values = player->apply_reset(); Ref<AnimatedValuesBackup> old_values = player->apply_reset();
r_anim_backups->push_back(old_values); if (old_values.is_valid()) {
r_anim_backups->push_back(old_values);
}
} }
_reset_animation_players(p_node->get_child(i), r_anim_backups); _reset_animation_players(p_node->get_child(i), r_anim_backups);
} }