I’ve been wondering about this for years.
I want to create arcade-y like flight mechanics in 2D, but the Physics are too complicated for me to understand.
There are huge amounts of content for 3D flight mechanics, but it’s hard for me to reduce it to 2D level, so much information that is un-needed or is user-biased.
As I mentioned, I’m looking at this topic for couple of years, and I can gather here all the material I’ve looked for up until today. Please, Do not respond in a way like “just add torque/rotate/force”, this is not my first time in this topic.
The physics are hard to comprehend, and even more to script in Unity’s black-box physics rigidbody system.
Physics is too hard to understand but at the same time you’re complaining about it being black-boxed? If the high-level is too hard to understand, why do you need to see the low-level stuff? TBH, if you need to see the low-level you can look here (Box2D). Most of the stuff you see in Unity is a thin wrapper around this and it’s pretty much stock Box2D so not as black-boxed as you would imagine.
Adding forces, setting velocity, dynamic body behaviour are all there in Box2D. If you want to see what happens to a Dynamic body during solving (linear/angular velocity & drag, gravity, contact impulses), it ALL happens here.
In terms of what you’re doing, it really sounds like it’s something where you should create a controller and use a Kinematic body (assuming you still want collider iteraction) rather than using stock velocities, drag, gravity etc. Create your own model and drive it that way?
Finally I’d add that I am always happy to provide info on our implementation with as much or as little info as you like. Certainly if you want to know something as simple as how a Unity method/property translates into the stock Box2D source.
I’m not complaining about Unity’s Physics system, I’m trying to create something, that up until this day I never found an answer to.
“The physics are hard to comprehend” relates to the Aerodynamic mathematics and physics required to implement in the Rigidbody system. If you want to read more, you are more then welcome to look at the links I sent.
I don’t think I need to use a Kinematic body, since many of the scripts I read didn’t do so as well.
I do believe that there’s a much simpler answer, that I myself do not have the knowledge to implement, even with all my attempts.
I did look at some of the links but I was addressing your comment about it being black boxed as if it were an impedance to you moving forward. That didn’t seem to stop the initial project you linked to which results in simply driving it via forces from my brief overview.
Whilst I’ve not looked into this subject much, it does seem that the 2D case and its limited degrees of freedom would be much simpler to implement but also I really get a sense that none/little of this technical detail is required because you yourself call it “arcade-y like flight mechanics” which suggests that as long as it feels right it is right approach.
Anyway, I’ve not really experimented with aerodynamics so I’ll leave it there. Hopefully, as you requested, someone can come along and give you some useful guidance here. If there’s any specific info about the 2D physics you don’t follow though then don’t hesitate to ask.