Browse Source

Merge pull request #81525 from KoBeWi/tweening_the_impossible

Check if property exists before tweening
Rémi Verschelde 1 year ago
parent
commit
0e6160a00f
1 changed files with 9 additions and 1 deletions
  1. 9 1
      scene/animation/tween.cpp

+ 9 - 1
scene/animation/tween.cpp

@@ -104,7 +104,15 @@ Ref<PropertyTweener> Tween::tween_property(const Object *p_target, const NodePat
 	CHECK_VALID();
 
 	Vector<StringName> property_subnames = p_property.get_as_property_path().get_subnames();
-	if (!_validate_type_match(p_target->get_indexed(property_subnames), p_to)) {
+#ifdef DEBUG_ENABLED
+	bool prop_valid;
+	const Variant &prop_value = p_target->get_indexed(property_subnames, &prop_valid);
+	ERR_FAIL_COND_V_MSG(!prop_valid, nullptr, vformat("The tweened property \"%s\" does not exist in object \"%s\".", p_property, p_target));
+#else
+	const Variant &prop_value = p_target->get_indexed(property_subnames);
+#endif
+
+	if (!_validate_type_match(prop_value, p_to)) {
 		return nullptr;
 	}