diff --git a/scene/animation/animation_mixer.cpp b/scene/animation/animation_mixer.cpp index cca1c6efbbd..879c39eec92 100644 --- a/scene/animation/animation_mixer.cpp +++ b/scene/animation/animation_mixer.cpp @@ -871,21 +871,23 @@ bool AnimationMixer::_update_caches() { // TODO: Currently, misc type cannot be blended. In the future, // it should have a separate blend weight, just as bool is converted to 0 and 1. // Then, it should provide the correct precedence value. - switch (track_value->init_value.get_type()) { - case Variant::NIL: - case Variant::STRING_NAME: - case Variant::NODE_PATH: - case Variant::RID: - case Variant::OBJECT: - case Variant::CALLABLE: - case Variant::SIGNAL: - case Variant::DICTIONARY: - case Variant::ARRAY: { - WARN_PRINT_ONCE_ED("AnimationMixer: '" + String(E) + "', Value Track: '" + String(path) + "' uses a non-numeric type as key value with UpdateMode.UPDATE_CONTINUOUS. This will not be blended correctly, so it is forced to UpdateMode.UPDATE_DISCRETE."); - track_value->is_continuous = false; - break; - } - default: { + if (track_value->is_continuous) { + switch (track_value->init_value.get_type()) { + case Variant::NIL: + case Variant::STRING_NAME: + case Variant::NODE_PATH: + case Variant::RID: + case Variant::OBJECT: + case Variant::CALLABLE: + case Variant::SIGNAL: + case Variant::DICTIONARY: + case Variant::ARRAY: { + WARN_PRINT_ONCE_ED("AnimationMixer: '" + String(E) + "', Value Track: '" + String(path) + "' uses a non-numeric type as key value with UpdateMode.UPDATE_CONTINUOUS. This will not be blended correctly, so it is forced to UpdateMode.UPDATE_DISCRETE."); + track_value->is_continuous = false; + break; + } + default: { + } } }