NodePath

Camino del árbol de la escena pre-parseado.

Descripción

A pre-parsed relative or absolute path in a scene tree, for use with Node.get_node and similar functions. It can reference a node, a resource within a node, or a property of a node or resource. For instance, "Path2D/PathFollow2D/Sprite:texture:size" 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 NodePath 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 NodePath 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:

# No leading slash means it is relative to the current node.
@"A" # Immediate child A
@"A/B" # A's child B
@"." # The current node.
@".." # The parent node.
@"../C" # A sibling node C.
# A leading slash means it is absolute from the SceneTree.
@"/root" # Equivalent to get_tree().get_root().
@"/root/Main" # If your main scene's root node were named "Main".
@"/root/MyAutoload" # If you have an autoloaded node or scene.

Note: In the editor, NodePath properties are automatically updated when moving, renaming or deleting a node in the scene tree, but they are never updated at runtime.

Descripciones de Métodos

Creates a NodePath from a string, e.g. "Path2D/PathFollow2D/Sprite:texture:size". A path is absolute if it starts with a slash. Absolute paths are only valid in the global scene tree, not within individual scenes. In a relative path, "." and ".." indicate the current node and its parent.

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()
# would retrieve both the Sprite node and the "texture" resource.
"Path2D/PathFollow2D/Sprite:texture"
# 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"

Devuelve un camino de nodos con un carácter de dos puntos (:) preparado, transformándolo en un camino de propiedades puras sin nombre de nodo (por defecto para resolver desde el nodo actual).

# Esto será analizado como una ruta de nodo a la propiedad "x" en el nodo "posición".
var node_path = NodePath("position:x")
# Esto será analizado como una ruta de nodo al componente "x" de la propiedad "position" en el nodo actual
var ruta_propiedad = node_path. get_as_property_path()
print(ruta_propiedad) # :position:x

  • String 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.

var nodepath = NodePath("Path2D/PathFollow2D/Sprite:texture:load_path")
print(nodepath.get_concatenated_subnames()) # texture:load_path

Gets the node name indicated by idx (0 to get_name_count).

var node_path = NodePath("Path2D/PathFollow2D/Sprite")
print(node_path.get_name(0)) # Path2D
print(node_path.get_name(1)) # PathFollow2D
print(node_path.get_name(2)) # Sprite

  • int get_name_count ( )

Gets the number of node names which make up the path. Subnames (see get_subname_count) are not included.

For example, "Path2D/PathFollow2D/Sprite" has 3 names.


Gets 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

  • int get_subname_count ( )

Gets 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 ( )

Devuelve true si la ruta del nodo es absoluta (en contraposición a la relativa), lo que significa que comienza con un carácter de barra inclinada (/). Las rutas de nodo absolutas pueden utilizarse para acceder al nodo raíz ("/root") o a las autocargas (por ejemplo, "/global" si se registró un autocarga "global").


Devuelve true si la ruta del nodo está vacía.