diff options
-rw-r--r-- | doc/classes/Node.xml | 1 | ||||
-rw-r--r-- | scene/main/node.cpp | 3 |
2 files changed, 4 insertions, 0 deletions
diff --git a/doc/classes/Node.xml b/doc/classes/Node.xml index eeb8dc072c..b342fc0813 100644 --- a/doc/classes/Node.xml +++ b/doc/classes/Node.xml @@ -215,6 +215,7 @@ </argument> <description> Returns a child node by its index (see [method get_child_count]). This method is often used for iterating all children of a node. + Negative indices access the children from the last one. To access a child node via its name, use [method get_node]. </description> </method> diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 653eb698d4..6b304c03d2 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -1327,6 +1327,9 @@ int Node::get_child_count() const { } Node *Node::get_child(int p_index) const { + if (p_index < 0) { + p_index += data.children.size(); + } ERR_FAIL_INDEX_V(p_index, data.children.size(), nullptr); return data.children[p_index]; |