I’m trying to make a 3d flight controller with a more arcade feel (think Ace Combat or Rogue Squadron). I’m somewhat new to working in 3d in Godot though and I don’t really understand what methods I should be using to achieve this.
I want up and down to control pitch and left and right to be something of a hybrid roll/yaw. I’m setting direction to -transform.basis.z and multiplying that by speed, but when I use rotate_x() with the pitch, the plane itself rotates, but I only move flatly across the world plane rather than climbing up or down as I’m attempting to achieve.
What am I missing here?
That’s what I assumed at first too, but I am targeting the primary node which is a character3D. The mesh is a child of that and nothing is targeting it. This is the code I’m using:
rotate_x(pitch * pitch_speed)
Not tested but perhaps you should be using
rotate_object_local
- so the rotation is in the plane’s own axis, rather than that of its parent.