Browse Source

Merge pull request #83417 from Rubonnek/show-animation-mixer-warning-when-relevant

Show AnimationMixer warning for non-numeric types only when relevant
Rémi Verschelde 1 year ago
parent
commit
aa0be93a89
1 changed files with 17 additions and 15 deletions
  1. 17 15
      scene/animation/animation_mixer.cpp

+ 17 - 15
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: {
+						}
 					}
 				}