Attention |
Topic was automatically imported from the old Question2Answer platform. | |

Asked By |
vonflyhighace2 | |

Old Version |
Published before Godot 3 was released. |

I’m trying to calculate the angle between my characters Z axis and the cameras Z axis. How would I go about doing this, and does Godot have any build in methods to make it any easier?

EDIT: For Vector2 is `angle_to`

, but z axis?

If is for Vector3, just checked and Vector3.angle_to is on Godot 2.1.1

It appears on internal editor’s docs (with no details) but are not on the website yet.

eons | 2016-12-01 22:47

Reminder: in Godot, the Camera’s Z axis is backwards due to OpenGL convention.

I would go for eons solution once you have the two vectors.

And indeed… the function exists https://github.com/godotengine/godot/blob/master/core/variant_call.cpp#L1493

But it’s not in the docs

Zylann | 2016-12-02 16:41

On **Godot 4** the object **Vector2** provide the method **angle_to_point( Vector2)**. Objects based in

**Node2D**provide

*transform*properties like position property, for situate the

**Node2D**, wich is a

**Vector2**and you can get angle respect to another position (

**vector2**). The result angle (in

*radians*) is necesary to

*normalize*so that fit with the expected, for example adding 180 grades:

```
self.rotation = self.position.angle_to_point(forwardPosition);
self.rotation_degrees = self.rotation_degrees + 180; #optional, for fit
```

RufusWein | 2023-04-06 09:11