NodePath
Pre-parsed scene tree path.
A pre-parsed relative or absolute path in a scene tree, for use with and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For instance, would refer to the size
property of the texture
resource on the node named "Sprite"
which is a child of the other named nodes in the path.
You will usually just pass a string to Node.get_node and it will be automatically converted, but you may occasionally want to parse a path ahead of time with or the literal syntax @"path"
. Exporting a NodePath variable will give you a node selection widget in the properties panel of the editor, which can often be useful.
A is composed of a list of slash-separated node names (like a filesystem path) and an optional colon-separated list of “subnames” which can be resources or properties.
Some examples of NodePaths include the following:
- NodePath NodePath ( from )
The “subnames” optionally included after the path to the target node can point to resources or properties, and can also be nested.
Examples of valid NodePaths (assuming that those nodes exist and have the referenced resources or properties):
# Points to the Sprite node
"Path2D/PathFollow2D/Sprite"
# Points to the Sprite node and its 'texture' resource.
# get_node() would retrieve "Sprite", while get_node_and_resource()
# Points to the Sprite node and its 'position' property.
"Path2D/PathFollow2D/Sprite:position"
# Points to the Sprite node and the 'x' component of its 'position' property.
"Path2D/PathFollow2D/Sprite:position:x"
# Absolute path (from 'root')
"/root/Level/Path2D"
- NodePath get_as_property_path ( )
Returns a node path with a colon character (:
) prepended, transforming it to a pure property path with no node name (defaults to resolving from the current node).
- get_concatenated_subnames ( )
Returns all subnames concatenated with a colon character (:
) as separator, i.e. the right side of the first colon in a node path.
print(nodepath.get_concatenated_subnames()) # texture:load_path
- String get_name ( idx )
Get the node name indicated by idx
(0 to get_name_count).
- get_name_count ( )
For example, has 3 names.
- String get_subname ( idx )
Get the resource or property name indicated by idx
(0 to get_subname_count).
var node_path = NodePath("Path2D/PathFollow2D/Sprite:texture:load_path")
print(node_path.get_subname(0)) # texture
print(node_path.get_subname(1)) # load_path
- get_subname_count ( )
Get the number of resource or property names (“subnames”) in the path. Each subname is listed after a colon character (:
) in the node path.
For example, "Path2D/PathFollow2D/Sprite:texture:load_path"
has 2 subnames.
- bool is_absolute ( )
Returns true
if the node path is absolute (as opposed to relative), which means that it starts with a slash character (/
). Absolute node paths can be used to access the root node ("/root"
) or autoloads (e.g. "/global"
if a “global” autoload was registered).