Bird
Raised Fist0
Unityframework~10 mins

Collider2D types (box, circle, polygon) in Unity - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to add a BoxCollider2D component to the GameObject.

Unity
gameObject.AddComponent<[1]>();
Drag options to blanks, or click blank then click option'
ACircleCollider2D
BBoxCollider2D
CPolygonCollider2D
DRigidbody2D
Attempts:
3 left
💡 Hint
Common Mistakes
Choosing CircleCollider2D or PolygonCollider2D instead of BoxCollider2D.
2fill in blank
medium

Complete the code to add a CircleCollider2D component and set its radius to 2.5.

Unity
var collider = gameObject.AddComponent<[1]>(); 
collider.radius = 2.5f;
Drag options to blanks, or click blank then click option'
ACircleCollider2D
BPolygonCollider2D
CEdgeCollider2D
DBoxCollider2D
Attempts:
3 left
💡 Hint
Common Mistakes
Using BoxCollider2D which does not have a radius property.
3fill in blank
hard

Fix the error in the code to add a PolygonCollider2D component.

Unity
PolygonCollider2D collider = gameObject.AddComponent<[1]>();
Drag options to blanks, or click blank then click option'
ACircleCollider2D
BBoxCollider2D
CCapsuleCollider2D
DPolygonCollider2D
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different collider type name that does not match the variable type.
4fill in blank
hard

Fill both blanks to create a BoxCollider2D and set its size to (5, 4).

Unity
var collider = gameObject.AddComponent<[1]>(); 
collider.size = new Vector2([2], 4);
Drag options to blanks, or click blank then click option'
ABoxCollider2D
BCircleCollider2D
CPolygonCollider2D
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using CircleCollider2D which does not have a size property.
Setting size with wrong values.
5fill in blank
hard

Fill the two blanks to add a PolygonCollider2D, set its path count to 1, and define a triangle shape.

Unity
var collider = gameObject.AddComponent<[1]>(); 
collider.pathCount = [2]; 
collider.SetPath(0, new Vector2[] { new Vector2(0,0), new Vector2(1,0), new Vector2(0,1) });
Drag options to blanks, or click blank then click option'
ABoxCollider2D
B1
CPolygonCollider2D
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using BoxCollider2D instead of PolygonCollider2D.
Setting pathCount to wrong number.

Practice

(1/5)
1. Which Collider2D type is best suited for a rectangular game object in Unity?
easy
A. BoxCollider2D
B. CircleCollider2D
C. PolygonCollider2D
D. EdgeCollider2D

Solution

  1. Step 1: Understand the shape of the object

    A rectangle or square has straight edges and right angles.
  2. Step 2: Match the collider type to the shape

    BoxCollider2D fits rectangles and squares perfectly because it creates a box-shaped collision area.
  3. Final Answer:

    BoxCollider2D -> Option A
  4. Quick Check:

    Rectangle shape = BoxCollider2D [OK]
Hint: Rectangles use BoxCollider2D for perfect fit [OK]
Common Mistakes:
  • Choosing CircleCollider2D for rectangles
  • Using PolygonCollider2D unnecessarily for simple shapes
  • Confusing EdgeCollider2D with BoxCollider2D
2. Which of the following is the correct way to add a CircleCollider2D component to a GameObject in C# script?
easy
A. gameObject.AddComponent<BoxCollider2D>();
B. gameObject.AddComponent<PolygonCollider2D>();
C. gameObject.AddComponent<CircleCollider2D>();
D. gameObject.AddComponent<EdgeCollider2D>();

Solution

  1. Step 1: Identify the correct component type

    CircleCollider2D is the component for circular collision shapes.
  2. Step 2: Use AddComponent with the correct type

    The syntax is gameObject.AddComponent<Type>(); so for circle, use CircleCollider2D.
  3. Final Answer:

    gameObject.AddComponent<CircleCollider2D>(); -> Option C
  4. Quick Check:

    Add CircleCollider2D with AddComponent<> [OK]
Hint: Use AddComponent<CircleCollider2D>() for circle colliders [OK]
Common Mistakes:
  • Using wrong collider type in AddComponent
  • Missing angle brackets <> in AddComponent
  • Confusing BoxCollider2D with CircleCollider2D
3. What will happen if you assign a PolygonCollider2D to a GameObject and set its points to form a triangle shape?
medium
A. The GameObject will have a circular collision area ignoring the points.
B. The GameObject will have a triangular collision area matching the points.
C. The GameObject will throw a runtime error due to invalid points.
D. The GameObject will have a box-shaped collision area by default.

Solution

  1. Step 1: Understand PolygonCollider2D behavior

    PolygonCollider2D uses points to define a custom shape for collision.
  2. Step 2: Setting points to triangle shape

    When points form a triangle, the collider matches that triangle shape exactly.
  3. Final Answer:

    Triangular collision area matching points -> Option B
  4. Quick Check:

    PolygonCollider2D shape = points defined [OK]
Hint: PolygonCollider2D matches shape from points given [OK]
Common Mistakes:
  • Assuming PolygonCollider2D defaults to box or circle
  • Expecting errors from valid point sets
  • Confusing PolygonCollider2D with BoxCollider2D
4. You wrote this code to add a BoxCollider2D but it doesn't appear on your GameObject:
var collider = gameObject.AddComponent<BoxCollider2D>;
collider.size = new Vector2(2, 3);
What is the error?
medium
A. AddComponent cannot be used in scripts
B. BoxCollider2D does not have a size property
C. Vector2 should be Vector3 for size
D. Missing parentheses after AddComponent<BoxCollider2D>

Solution

  1. Step 1: Check AddComponent syntax

    AddComponent is a method and requires parentheses: AddComponent<Type>()
  2. Step 2: Identify the missing parentheses

    The code uses AddComponent<BoxCollider2D> without () which causes no component to be added.
  3. Final Answer:

    Missing parentheses after AddComponent<BoxCollider2D> -> Option D
  4. Quick Check:

    AddComponent needs () to work [OK]
Hint: Always add () after AddComponent<Type> [OK]
Common Mistakes:
  • Forgetting parentheses after AddComponent
  • Confusing size property with other collider types
  • Using Vector3 instead of Vector2 for 2D colliders
5. You want to create a complex-shaped 2D character with both circular and polygonal parts. Which approach correctly combines colliders for best collision detection?
hard
A. Add multiple Collider2D components: CircleCollider2D for round parts and PolygonCollider2D for complex parts
B. Use only a single PolygonCollider2D for the entire character
C. Use only CircleCollider2D colliders and ignore polygon shapes
D. Add a BoxCollider2D and scale it to cover all parts

Solution

  1. Step 1: Understand collider combination

    Unity allows multiple Collider2D components on one GameObject for complex shapes.
  2. Step 2: Match collider types to shape parts

    Use CircleCollider2D for round parts and PolygonCollider2D for complex shapes to get accurate collisions.
  3. Step 3: Avoid oversimplifying with one collider

    Single collider types may not fit all parts well, causing inaccurate collisions.
  4. Final Answer:

    Add multiple Collider2D components: CircleCollider2D for round parts and PolygonCollider2D for complex parts -> Option A
  5. Quick Check:

    Combine colliders for complex shapes [OK]
Hint: Use multiple colliders for mixed shapes [OK]
Common Mistakes:
  • Trying to use one collider type for all shapes
  • Ignoring collider overlap and physics impact
  • Scaling box collider to fit complex shapes