diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml index a3752e9abc8..dd2caa92532 100644 --- a/doc/classes/AnimationPlayer.xml +++ b/doc/classes/AnimationPlayer.xml @@ -67,7 +67,7 @@ - Returns the [Animation] with key [code]name[/code] or [code]null[/code] if not found. + Returns the [Animation] with the key [code]name[/code]. If the animation does not exist, [code]null[/code] is returned and an error is logged. diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index 7c0b6e0441b..44d568407d8 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -1052,13 +1052,15 @@ void AnimationPlayer::rename_animation(const StringName &p_name, const StringNam bool AnimationPlayer::has_animation(const StringName &p_name) const { return animation_set.has(p_name); } + Ref AnimationPlayer::get_animation(const StringName &p_name) const { - ERR_FAIL_COND_V(!animation_set.has(p_name), Ref()); + ERR_FAIL_COND_V_MSG(!animation_set.has(p_name), Ref(), vformat("Animation not found: \"%s\".", p_name)); const AnimationData &data = animation_set[p_name]; return data.animation; } + void AnimationPlayer::get_animation_list(List *p_animations) const { List anims;