Fix export var override in PackedScene at runtime

Regression fix: update_exports is tool only and should be used only in
the editor, otherwise it can cause export variable overrides from
instances to be discarded in favor of the parent's value.

(cherry picked from commit f1587c8a7d)
This commit is contained in:
PouleyKetchoupp 2021-06-18 10:54:09 -07:00 committed by Rémi Verschelde
parent 4ae0310cec
commit cad2ba013a
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -471,7 +471,9 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map
StringName type = p_node->get_class();
Ref<Script> script = p_node->get_script();
if (script.is_valid()) {
if (Engine::get_singleton()->is_editor_hint() && script.is_valid()) {
// Should be called in the editor only and not at runtime,
// otherwise it can cause problems because of missing instance state support.
script->update_exports();
}