mirror of
https://github.com/godotengine/godot-docs.git
synced 2026-01-04 14:11:02 +03:00
Clarify purpose of Node.owner in Running code in the editor
This commit is contained in:
@@ -292,8 +292,12 @@ Instancing scenes
|
||||
-----------------
|
||||
|
||||
You can instantiate packed scenes normally and add them to the scene currently
|
||||
opened in the editor. Be sure to set the scene root as the owner of all the
|
||||
nodes created this way or the nodes won't be visible in the editor.
|
||||
opened in the editor. By default, nodes or scenes added with
|
||||
:ref:`Node.add_child(node) <class_Node_method_add_child>` are **not** visible
|
||||
in the Scene tree dock and are **not** persisted to disk. If you wish the node
|
||||
or scene to be visible in the scene tree dock and persisted to disk when saving
|
||||
the scene, you need to set the child node's :ref:`owner <class_Node_property_owner>`
|
||||
property to the currently edited scene root.
|
||||
|
||||
If you are using ``@tool``:
|
||||
|
||||
@@ -303,6 +307,9 @@ If you are using ``@tool``:
|
||||
func _ready():
|
||||
var node = Spatial.new()
|
||||
add_child(node) # Parent could be any node in the scene
|
||||
|
||||
# The line below is required to make the node visible in the Scene tree dock
|
||||
# and persist changes made by the tool script to the saved scene file.
|
||||
node.set_owner(get_tree().edited_scene_root)
|
||||
|
||||
.. code-tab:: csharp
|
||||
@@ -311,6 +318,9 @@ If you are using ``@tool``:
|
||||
{
|
||||
var node = new Spatial();
|
||||
AddChild(node); // Parent could be any node in the scene
|
||||
|
||||
// The line below is required to make the node visible in the Scene tree dock
|
||||
// and persist changes made by the tool script to the saved scene file.
|
||||
node.Owner = GetTree().EditedSceneRoot;
|
||||
}
|
||||
|
||||
@@ -324,6 +334,9 @@ If you are using :ref:`EditorScript<class_EditorScript>`:
|
||||
var parent = get_scene().find_node("Parent")
|
||||
var node = Spatial.new()
|
||||
parent.add_child(node)
|
||||
|
||||
# The line below is required to make the node visible in the Scene tree dock
|
||||
# and persist changes made by the tool script to the saved scene file.
|
||||
node.set_owner(get_scene())
|
||||
|
||||
.. code-tab:: csharp
|
||||
@@ -334,6 +347,9 @@ If you are using :ref:`EditorScript<class_EditorScript>`:
|
||||
var parent = GetScene().FindNode("Parent");
|
||||
var node = new Spatial();
|
||||
parent.AddChild(node);
|
||||
|
||||
// The line below is required to make the node visible in the Scene tree dock
|
||||
// and persist changes made by the tool script to the saved scene file.
|
||||
node.Owner = GetScene();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user