Fail look_at() if not inside tree

This commit is contained in:
kobewi 2022-09-29 13:21:15 +02:00
parent 6991e9b43d
commit c080b9dc05
2 changed files with 2 additions and 1 deletions

View File

@ -116,7 +116,7 @@
Rotates the node so that the local forward axis (-Z) points toward the [param target] position. Rotates the node so that the local forward axis (-Z) points toward the [param target] position.
The local up axis (+Y) points as close to the [param up] vector as possible while staying perpendicular to the local forward axis. The resulting transform is orthogonal, and the scale is preserved. Non-uniform scaling may not work correctly. The local up axis (+Y) points as close to the [param up] vector as possible while staying perpendicular to the local forward axis. The resulting transform is orthogonal, and the scale is preserved. Non-uniform scaling may not work correctly.
The [param target] position cannot be the same as the node's position, the [param up] vector cannot be zero, and the direction from the node's position to the [param target] vector cannot be parallel to the [param up] vector. The [param target] position cannot be the same as the node's position, the [param up] vector cannot be zero, and the direction from the node's position to the [param target] vector cannot be parallel to the [param up] vector.
Operations take place in global space. Operations take place in global space, which means that the node must be in the scene tree.
</description> </description>
</method> </method>
<method name="look_at_from_position"> <method name="look_at_from_position">

View File

@ -786,6 +786,7 @@ void Node3D::set_identity() {
} }
void Node3D::look_at(const Vector3 &p_target, const Vector3 &p_up) { void Node3D::look_at(const Vector3 &p_target, const Vector3 &p_up) {
ERR_FAIL_COND_MSG(!is_inside_tree(), "Node not inside tree. Use look_at_from_position() instead.");
Vector3 origin = get_global_transform().origin; Vector3 origin = get_global_transform().origin;
look_at_from_position(origin, p_target, p_up); look_at_from_position(origin, p_target, p_up);
} }