Browse Source

make property not be applied in skeleton if not inside tree. This will eventually e changed. Fixes #5205

Juan Linietsky 9 năm trước cách đây
mục cha
commit
449a28e75a
1 tập tin đã thay đổi với 9 bổ sung7 xóa
  1. 9 7
      scene/3d/skeleton.cpp

+ 9 - 7
scene/3d/skeleton.cpp

@@ -64,15 +64,17 @@ bool Skeleton::_set(const StringName& p_path, const Variant& p_value) {
 	else if (what=="bound_childs") {
 		Array children=p_value;
 
-		bones[which].nodes_bound.clear();
+		if (is_inside_tree()) {
+			bones[which].nodes_bound.clear();
 
-		for (int i=0;i<children.size();i++) {
+			for (int i=0;i<children.size();i++) {
 
-			NodePath path=children[i];
-			ERR_CONTINUE( path.operator String()=="" );
-			Node *node = get_node(path);
-			ERR_CONTINUE(!node);
-			bind_child_node_to_bone(which,node);
+				NodePath path=children[i];
+				ERR_CONTINUE( path.operator String()=="" );
+				Node *node = get_node(path);
+				ERR_CONTINUE(!node);
+				bind_child_node_to_bone(which,node);
+			}
 		}
 	} else {
 		return false;