Fix get_path() error when calling get_node()

(cherry picked from commit 5d6dc206bc)
This commit is contained in:
Haoyu Qiu 2022-10-19 13:05:41 +08:00
parent 05cb89855e
commit 485ec0d27c
1 changed files with 13 additions and 2 deletions

View File

@ -1458,12 +1458,23 @@ Node *Node::get_node_or_null(const NodePath &p_path) const {
Node *Node::get_node(const NodePath &p_path) const { Node *Node::get_node(const NodePath &p_path) const {
Node *node = get_node_or_null(p_path); Node *node = get_node_or_null(p_path);
if (unlikely(!node)) { if (unlikely(!node)) {
// Try to get a clear description of this node in the error message.
String desc;
if (is_inside_tree()) {
desc = get_path();
} else {
desc = get_name();
if (desc.empty()) {
desc = get_class();
}
}
if (p_path.is_absolute()) { if (p_path.is_absolute()) {
ERR_FAIL_V_MSG(nullptr, ERR_FAIL_V_MSG(nullptr,
vformat("(Node not found: \"%s\" (absolute path attempted from \"%s\").)", p_path, get_path())); vformat("(Node not found: \"%s\" (absolute path attempted from \"%s\").)", p_path, desc));
} else { } else {
ERR_FAIL_V_MSG(nullptr, ERR_FAIL_V_MSG(nullptr,
vformat("(Node not found: \"%s\" (relative to \"%s\").)", p_path, get_path())); vformat("(Node not found: \"%s\" (relative to \"%s\").)", p_path, desc));
} }
} }