class_nodepath.rst 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the NodePath.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_NodePath:
  6. NodePath
  7. ========
  8. **Category:** Built-In Types
  9. Brief Description
  10. -----------------
  11. Pre-parsed scene tree path.
  12. Methods
  13. -------
  14. +---------------------------------+-----------------------------------------------------------------------------------------------+
  15. | :ref:`NodePath<class_NodePath>` | :ref:`NodePath<class_NodePath_method_NodePath>` **(** :ref:`String<class_String>` from **)** |
  16. +---------------------------------+-----------------------------------------------------------------------------------------------+
  17. | :ref:`NodePath<class_NodePath>` | :ref:`get_as_property_path<class_NodePath_method_get_as_property_path>` **(** **)** |
  18. +---------------------------------+-----------------------------------------------------------------------------------------------+
  19. | :ref:`String<class_String>` | :ref:`get_concatenated_subnames<class_NodePath_method_get_concatenated_subnames>` **(** **)** |
  20. +---------------------------------+-----------------------------------------------------------------------------------------------+
  21. | :ref:`String<class_String>` | :ref:`get_name<class_NodePath_method_get_name>` **(** :ref:`int<class_int>` idx **)** |
  22. +---------------------------------+-----------------------------------------------------------------------------------------------+
  23. | :ref:`int<class_int>` | :ref:`get_name_count<class_NodePath_method_get_name_count>` **(** **)** |
  24. +---------------------------------+-----------------------------------------------------------------------------------------------+
  25. | :ref:`String<class_String>` | :ref:`get_subname<class_NodePath_method_get_subname>` **(** :ref:`int<class_int>` idx **)** |
  26. +---------------------------------+-----------------------------------------------------------------------------------------------+
  27. | :ref:`int<class_int>` | :ref:`get_subname_count<class_NodePath_method_get_subname_count>` **(** **)** |
  28. +---------------------------------+-----------------------------------------------------------------------------------------------+
  29. | :ref:`bool<class_bool>` | :ref:`is_absolute<class_NodePath_method_is_absolute>` **(** **)** |
  30. +---------------------------------+-----------------------------------------------------------------------------------------------+
  31. | :ref:`bool<class_bool>` | :ref:`is_empty<class_NodePath_method_is_empty>` **(** **)** |
  32. +---------------------------------+-----------------------------------------------------------------------------------------------+
  33. Description
  34. -----------
  35. A pre-parsed relative or absolute path in a scene tree, for use with :ref:`Node.get_node<class_Node_method_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.
  36. You will usually just pass a string to :ref:`Node.get_node<class_Node_method_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.
  37. 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.
  38. Method Descriptions
  39. -------------------
  40. .. _class_NodePath_method_NodePath:
  41. - :ref:`NodePath<class_NodePath>` **NodePath** **(** :ref:`String<class_String>` from **)**
  42. 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.
  43. The "subnames" optionally included after the path to the target node can point to resources or properties, and can also be nested.
  44. Examples of valid NodePaths (assuming that those nodes exist and have the referenced resources or properties):
  45. ::
  46. # Points to the Sprite node
  47. "Path2D/PathFollow2D/Sprite"
  48. # Points to the Sprite node and its "texture" resource.
  49. # get_node() would retrieve "Sprite", while get_node_and_resource()
  50. # would retrieve both the Sprite node and the "texture" resource.
  51. "Path2D/PathFollow2D/Sprite:texture"
  52. # Points to the Sprite node and its "position" property.
  53. "Path2D/PathFollow2D/Sprite:position"
  54. # Points to the Sprite node and the "x" component of its "position" property.
  55. "Path2D/PathFollow2D/Sprite:position:x"
  56. # Absolute path (from "root")
  57. "/root/Level/Path2D"
  58. .. _class_NodePath_method_get_as_property_path:
  59. - :ref:`NodePath<class_NodePath>` **get_as_property_path** **(** **)**
  60. 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).
  61. ::
  62. # This will be parsed as a node path to the "x" property in the "position" node
  63. var node_path = NodePath("position:x")
  64. # This will be parsed as a node path to the "x" component of the "position" property in the current node
  65. var property_path = node_path.get_as_property_path()
  66. print(property_path) # :position:x
  67. .. _class_NodePath_method_get_concatenated_subnames:
  68. - :ref:`String<class_String>` **get_concatenated_subnames** **(** **)**
  69. Returns all subnames concatenated with a colon character (``:``) as separator, i.e. the right side of the first colon in a node path.
  70. ::
  71. var nodepath = NodePath("Path2D/PathFollow2D/Sprite:texture:load_path")
  72. print(nodepath.get_concatenated_subnames()) # texture:load_path
  73. .. _class_NodePath_method_get_name:
  74. - :ref:`String<class_String>` **get_name** **(** :ref:`int<class_int>` idx **)**
  75. Gets the node name indicated by ``idx`` (0 to :ref:`get_name_count<class_NodePath_method_get_name_count>`).
  76. ::
  77. var node_path = NodePath("Path2D/PathFollow2D/Sprite")
  78. print(node_path.get_name(0)) # Path2D
  79. print(node_path.get_name(1)) # PathFollow2D
  80. print(node_path.get_name(2)) # Sprite
  81. .. _class_NodePath_method_get_name_count:
  82. - :ref:`int<class_int>` **get_name_count** **(** **)**
  83. Gets the number of node names which make up the path. Subnames (see :ref:`get_subname_count<class_NodePath_method_get_subname_count>`) are not included.
  84. For example, ``"Path2D/PathFollow2D/Sprite"`` has 3 names.
  85. .. _class_NodePath_method_get_subname:
  86. - :ref:`String<class_String>` **get_subname** **(** :ref:`int<class_int>` idx **)**
  87. Gets the resource or property name indicated by ``idx`` (0 to :ref:`get_subname_count<class_NodePath_method_get_subname_count>`).
  88. ::
  89. var node_path = NodePath("Path2D/PathFollow2D/Sprite:texture:load_path")
  90. print(node_path.get_subname(0)) # texture
  91. print(node_path.get_subname(1)) # load_path
  92. .. _class_NodePath_method_get_subname_count:
  93. - :ref:`int<class_int>` **get_subname_count** **(** **)**
  94. Gets the number of resource or property names ("subnames") in the path. Each subname is listed after a colon character (``:``) in the node path.
  95. For example, ``"Path2D/PathFollow2D/Sprite:texture:load_path"`` has 2 subnames.
  96. .. _class_NodePath_method_is_absolute:
  97. - :ref:`bool<class_bool>` **is_absolute** **(** **)**
  98. 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).
  99. .. _class_NodePath_method_is_empty:
  100. - :ref:`bool<class_bool>` **is_empty** **(** **)**
  101. Returns ``true`` if the node path is empty.