Under the “What is with this coordinate system? Which way is up?” heading,
this section correctly states that both Unity and UE4 use a left-handed coordinate system.
However, it incorrectly states that in UE4, “positive Y is “right””.
In reality, in UE4, positive Y is left.
Under the “Unity3D” heading, this section correctly states that “Unity uses a left-handed coordinate system”
However, under the “Unreal Engine4” heading, it incorrectly states that
“Unity uses a right-handed coordinate system”
Instead, it should say that
“Unreal 4 uses a left-handed coordinate system – where the vertical direction is usually represented by the +Z axis.”
This section is correct about the Y-axis though … it says “Y - left, right” (correctly implying that left is positive)
The least ambiguous way to distinguish Unreal’s left-handed system from Unity’s is to say that
in Unreal positive Z is usually drawn upwards, whereas
in Unity, positive Y is usually drawn upwards.
My complaint with docs…#faq is based on the appearance of a new Unreal project created with
Starter Content. In this scene, Y is pointing left. But if you make a scene without Starter
Content, Y is pointing right. Or put another way, it all depends on what you mean by positive X
being “forwards”. Does that mean pointing forward from the screen towards you, the viewer, seated
in your chair, or forward from your position, through the screen, towards the wall behind it?
Probably best to put in little diagrams …
Unity 5.1 (new empty scene)
Thanks for the feedback, however I am unable to reproduce the issue: In both cases illustrated below, with or without Starter Content, UE4 is using a “Left-handed” coordinate system with Z-UP, X-forward (towards you, the viewer), Y(left)=negative Y(right)=positive (*Like a character’s right arm if they are facing X-forward).
I have, however, corrected the entry that states “Unity uses a right-handed coordinate system,” which is indeed incorrect.
Hi Steve. Thanks for taking the time to reply, and for fixing the second error.
Both Unity and Unreal left-handed, Unity Y-up, Unreal Z-up: this much is clear and easily stated.
My first issue has to do with the ambiguity of language.
Yes, in Unreal, Y right positive “like a character’s right arm if they are facing x-forward” clears this up.
My complaint is that this disambiguating statement is lacking from the
“What is with this coordinate system?” section of
Note that what one sees in both of the images is your post is positive Y pointing left
(because the implicit character at the origin of your Unreal scenes has x facing towards us).
That’s what was confusing me at first.
If you want to be extra welcoming to defectors from Unity, such as myself, you might
consider adding “like a character’s right arm …”
to Unreal Engine 4 For Unity Developers | Unreal Engine Documentation
Or put another way, the text as written is not wrong, merely ambiguous.
It’s your call.
I’m not sure why your system defaults differently from mine, but that’s of no concern to me.
FYI, below is what I see when I create new blank projects (Unreal 4.8.0 / Windows 7).
The top image, a new blank project without starter content, has its
X-axis pointing away from us, therefore positive Y is pointing right.
The bottom image, a new blank project with starter content, has its
X-axis pointing towards us, therefore positive Y is pointing left
(as in both the images in your post)
Hi George. Again thanks for the feedback. I completely see how this can be confusing and I have added the phrase to this part of the documentation -but it will take about a week to publish.
As for the coordinates being reversed in blank projects and projects with including starter content, I appreciate the images for clarification. In the examples I provided, I simply oriented the camera so that they faced the same direction in both instances as I thought you meant Y was positive in one instance and negative in another, which would certainly be a bug. Instead we are seeing X from the rear in the top image and X from the front in the bottom image. Again, I can see how this can be confusing especially from someone coming from Unity. I am putting in a Feature Request to have both oriented in the same direction.
I think the X-right, Y-up would be more convenient if you would want to make the game have 2D support alongside the 3D part. I am talking from a game engine development standpoint. Ex: How would you present the data/interface to the game developer/user when switching from 2D to 3D? Are you letting him be able to switch from those 2 modes?