Math : Right-handed Y-up to Unity Left-handed Y-up

Can someone give me the transformation on Unity to convert my old data on Right-handed Y-up to the Unity Left-handed Y-up.


Well that depends on what you need. The difference is that one axis is inverted (or two are swapped). In most cases it's the z-axis. If your righthanded-z is also forward, since y is still up and i'll guess x is still right, you just have to invert z. In a right-handed system z will point towards you in Unity(left-handed) z points away from you.

So if you have a vector V just invert z:

Vector3 V;
V.z = -V.z;

What "data" do you talk about? A mesh? You have to be careful with meshes. The winding order is different. If you invert z the triangles will face into the opposite direction to fix that you'll have to swap two indices of each triangle.

Some more details would help ;)

So for my camera i need to do that to make it work :

transform.localPosition = new Vector3(-pos.x, pos.y, pos.z);     
 transform.localRotation = new Quaternion(-quat.x, quat.y, quat.z, -quat.w);
 transform.Rotate(new Vector3(0, 180, 0));

And for objects i don't need the last Rotate...