I am implementing a ship simulator in Unity using a mathematical model .

In order to have the same reference system used in the mathematical model I created a game object that I called ShipContainer. I oriented ShipContainer in order that its reference system is the same as the mathematical model. In the new reference system Y axes and Z axes are inverted: Z points up and Y points right.

I added my Ship gameobject to ShipContainer. I added a rigidbody to ShipContainer. I am appling forces and moment (resistance, rudder and propeller) to ShipContainer rigidbody.

The problem is that for linear speed and forces unity is using the new reference system, for angular velocity and moments unity is using its old reference system.

I really suggest you stay with Unity orientation system, or you will get really confused.

Keep Z forward, Y Up, and X right.

If you want keep mathematical model and you can not simply rename axis, just map them accordingly.

1 Like

Yeah, if it’s just a naming thing you’re setting yourself up for confusion,

i’d recommend just making the model’s name the same as unity’s names rather than rotation the whole world(so to speak)