Browse Source

Fixed export var default value in PackedScene when script is not loaded in editor

PouleyKetchoupp 5 năm trước cách đây
mục cha
commit
4e14eefd94
1 tập tin đã thay đổi với 5 bổ sung1 xóa
  1. 5 1
      scene/resources/packed_scene.cpp

+ 5 - 1
scene/resources/packed_scene.cpp

@@ -478,6 +478,11 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
 	p_node->get_property_list(&plist);
 	StringName type = p_node->get_class();
 
+	Ref<Script> script = p_node->get_script();
+	if (script.is_valid()) {
+		script->update_exports();
+	}
+
 	for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) {
 
 		if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) {
@@ -494,7 +499,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
 			isdefault = bool(Variant::evaluate(Variant::OP_EQUAL, value, default_value));
 		}
 
-		Ref<Script> script = p_node->get_script();
 		if (!isdefault && script.is_valid() && script->get_property_default_value(name, default_value)) {
 			isdefault = bool(Variant::evaluate(Variant::OP_EQUAL, value, default_value));
 		}