Bird
Raised Fist0
Unityframework~5 mins

3D coordinate system in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What are the three axes in a 3D coordinate system in Unity?
The three axes are X (horizontal), Y (vertical), and Z (depth). They define positions in 3D space.
Click to reveal answer
beginner
How does Unity's 3D coordinate system define the forward direction?
In Unity, the forward direction is along the positive Z axis.
Click to reveal answer
intermediate
What is the difference between local and world coordinates in Unity's 3D space?
World coordinates are positions relative to the scene origin. Local coordinates are relative to the object's own position and rotation.
Click to reveal answer
beginner
In Unity, if an object has position (1, 2, 3), what does each number represent?
1 is the position on the X axis (left-right), 2 on the Y axis (up-down), and 3 on the Z axis (forward-backward).
Click to reveal answer
beginner
Why is understanding the 3D coordinate system important in Unity?
It helps you place, move, and rotate objects correctly in the 3D world, making your game or app behave as expected.
Click to reveal answer
Which axis in Unity's 3D coordinate system points upwards?
AZ axis
BX axis
CY axis
DW axis
In Unity, what does the Z axis represent?
AHorizontal (left and right)
BDepth (forward and backward)
CVertical (up and down)
DTime
What is the origin point in Unity's 3D coordinate system?
ADepends on the object
B(1, 1, 1)
C(100, 100, 100)
D(0, 0, 0)
If an object moves along the positive X axis, which direction does it go?
ARight
BLeft
CUp
DForward
What does local coordinates mean in Unity?
APosition relative to the object's own origin
BPosition relative to the world origin
CPosition relative to the camera
DPosition relative to the UI
Explain the roles of the X, Y, and Z axes in Unity's 3D coordinate system.
Think about how you move in a room: left-right, up-down, forward-back.
You got /3 concepts.
    Describe the difference between world coordinates and local coordinates in Unity.
    Imagine a toy car on a table (world) and the car's own dashboard (local).
    You got /2 concepts.

      Practice

      (1/5)
      1.

      In Unity's 3D coordinate system, which axis typically represents the vertical direction?

      easy
      A. Z-axis
      B. X-axis
      C. W-axis
      D. Y-axis

      Solution

      1. Step 1: Understand Unity's coordinate axes

        Unity uses X for horizontal (left-right), Y for vertical (up-down), and Z for depth (forward-back).
      2. Step 2: Identify the vertical axis

        The vertical direction is along the Y-axis in Unity's 3D space.
      3. Final Answer:

        Y-axis -> Option D
      4. Quick Check:

        Vertical = Y-axis [OK]
      Hint: Remember Y is up/down in Unity's 3D space [OK]
      Common Mistakes:
      • Confusing Z-axis as vertical
      • Thinking X-axis is vertical
      • Using W-axis which doesn't exist in 3D
      2.

      Which of the following is the correct way to set an object's position to (1, 2, 3) in Unity using Vector3?

      transform.position = ?;
      easy
      A. new Vector2(1, 2, 3)
      B. Vector3(1, 2, 3)
      C. new Vector3(1, 2, 3)
      D. Vector3.new(1, 2, 3)

      Solution

      1. Step 1: Recall Vector3 instantiation syntax

        In Unity C#, you create a Vector3 using the constructor: new Vector3(x, y, z).
      2. Step 2: Check each option's syntax

        new Vector3(1, 2, 3) uses correct syntax. Vector3(1, 2, 3) misses 'new'. new Vector2(1, 2, 3) uses Vector2 which only has 2 components. Vector3.new(1, 2, 3) uses incorrect method call.
      3. Final Answer:

        new Vector3(1, 2, 3) -> Option C
      4. Quick Check:

        Use 'new Vector3(x, y, z)' to create 3D points [OK]
      Hint: Always use 'new Vector3' with three numbers [OK]
      Common Mistakes:
      • Omitting 'new' keyword
      • Using Vector2 instead of Vector3
      • Wrong method call syntax
      3.

      What will be the output of this Unity C# code snippet?

      Vector3 pos = new Vector3(2, 5, -3);
      pos.z = 10;
      Debug.Log(pos);
      medium
      A. (2.0, 5.0, 10.0)
      B. (2.0, 5.0, -3.0)
      C. (0.0, 0.0, 10.0)
      D. Error: Cannot assign to z

      Solution

      1. Step 1: Understand Vector3 initialization

        pos is set to (2, 5, -3) initially.
      2. Step 2: Modify the z component

        pos.z = 10 changes the z value from -3 to 10.
      3. Step 3: Output the Vector3

        Debug.Log prints the current pos, which is (2.0, 5.0, 10.0).
      4. Final Answer:

        (2.0, 5.0, 10.0) -> Option A
      5. Quick Check:

        Changing z updates position z value [OK]
      Hint: Changing pos.z updates only the z coordinate [OK]
      Common Mistakes:
      • Thinking original z stays unchanged
      • Expecting error on assignment
      • Confusing output format
      4.

      Identify the error in this Unity C# code that tries to move an object up by 1 unit:

      transform.position = transform.position + Vector3.up * 1;
      medium
      A. Code is correct and moves object up by 1 unit
      B. Cannot add Vector3 to transform.position
      C. Missing semicolon at the end
      D. Vector3.up is not defined in Unity

      Solution

      1. Step 1: Check Vector3.up usage

        Vector3.up is a predefined vector (0,1,0) in Unity representing upward direction.
      2. Step 2: Verify addition with transform.position

        transform.position is a Vector3, so adding Vector3.up * 1 is valid and moves the object up by 1 unit.
      3. Final Answer:

        Code is correct and moves object up by 1 unit -> Option A
      4. Quick Check:

        Vector3.up moves object up [OK]
      Hint: Vector3.up is (0,1,0), adding moves object up [OK]
      Common Mistakes:
      • Thinking Vector3.up is undefined
      • Believing Vector3 addition is invalid
      • Missing semicolon (actually present)
      5.

      You want to move an object diagonally forward and up by 3 units each in Unity. Which code correctly updates transform.position?

      hard
      A. transform.position += new Vector3(3, 3, 3);
      B. transform.position += Vector3.forward * 3 + Vector3.up * 3;
      C. transform.position = Vector3.forward * 3 + Vector3.up * 3;
      D. transform.position += Vector3.right * 3 + Vector3.up * 3;

      Solution

      1. Step 1: Understand directions in Unity

        Vector3.forward is (0,0,1) for forward, Vector3.up is (0,1,0) for up.
      2. Step 2: Combine movements correctly

        Adding Vector3.forward * 3 and Vector3.up * 3 moves object 3 units forward and 3 units up.
      3. Step 3: Use '+=' to add to current position

        transform.position += Vector3.forward * 3 + Vector3.up * 3; correctly adds this combined vector to current position.
      4. Final Answer:

        transform.position += Vector3.forward * 3 + Vector3.up * 3; -> Option B
      5. Quick Check:

        Use '+=' with combined vectors for diagonal move [OK]
      Hint: Add forward and up vectors multiplied by distance [OK]
      Common Mistakes:
      • Replacing position instead of adding
      • Using wrong axis like right instead of forward
      • Adding equal values to x, y, z instead of correct axes