Bird
Raised Fist0
Unityframework~5 mins

Obstacle avoidance in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is obstacle avoidance in game development?
Obstacle avoidance is a technique used to prevent characters or objects from colliding with obstacles in the game world by detecting and steering around them.
Click to reveal answer
beginner
Which Unity method is commonly used to detect obstacles for avoidance?
The Physics.Raycast method is commonly used to detect obstacles by casting invisible rays to check for collisions ahead.
Click to reveal answer
beginner
How does a Raycast help in obstacle avoidance?
A Raycast sends an invisible line forward from the object to check if it hits an obstacle, allowing the object to decide when to change direction to avoid collision.
Click to reveal answer
intermediate
What is the role of steering behaviors in obstacle avoidance?
Steering behaviors calculate how an object should move or turn to smoothly avoid obstacles while continuing toward its goal.
Click to reveal answer
beginner
Name a simple method to implement obstacle avoidance in Unity.
A simple method is to use Raycasts in front of the moving object to detect obstacles and then change the object's direction or stop movement when an obstacle is detected.
Click to reveal answer
What does a Raycast do in Unity for obstacle avoidance?
ASends an invisible line to detect obstacles ahead
BCreates a visible path for the player
CChanges the color of obstacles
DIncreases the speed of the object
Which Unity method is commonly used to check for obstacles in front of a moving object?
AOnCollisionEnter
BStart
CUpdate
DPhysics.Raycast
What should an object do when a Raycast detects an obstacle?
AIgnore the obstacle and keep moving
BIncrease speed
CChange direction or stop to avoid collision
DJump over the obstacle automatically
Which of these is NOT a common technique for obstacle avoidance?
ASteering behaviors
BChanging object color
CRaycasting
DPathfinding
What is the main goal of obstacle avoidance in games?
ATo prevent collisions with obstacles
BTo change the game background
CTo make objects move faster
DTo increase score automatically
Explain how Raycasting helps in obstacle avoidance in Unity.
Think about how the object 'sees' obstacles before hitting them.
You got /3 concepts.
    Describe a simple way to implement obstacle avoidance for a moving character in Unity.
    Consider how the character can 'look' ahead and react.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of obstacle avoidance in Unity game programming?
      easy
      A. To help objects move without hitting obstacles
      B. To make objects jump higher
      C. To change the color of objects
      D. To increase the speed of objects

      Solution

      1. Step 1: Understand obstacle avoidance concept

        Obstacle avoidance is used to prevent objects from colliding with obstacles in their path.
      2. Step 2: Identify the correct purpose

        The main goal is to help objects move smoothly without hitting anything.
      3. Final Answer:

        To help objects move without hitting obstacles -> Option A
      4. Quick Check:

        Obstacle avoidance = prevent collisions [OK]
      Hint: Obstacle avoidance means avoiding collisions [OK]
      Common Mistakes:
      • Confusing obstacle avoidance with speed control
      • Thinking it changes object appearance
      • Assuming it makes objects jump
      2. Which Unity function is commonly used to detect obstacles ahead for avoidance?
      easy
      A. Update
      B. Instantiate
      C. Raycast
      D. Destroy

      Solution

      1. Step 1: Recall Unity functions for detection

        Raycast is used to send an invisible line to detect objects in front.
      2. Step 2: Match function to obstacle detection

        Raycast detects obstacles ahead, while Instantiate creates objects, Update runs every frame, and Destroy removes objects.
      3. Final Answer:

        Raycast -> Option C
      4. Quick Check:

        Obstacle detection = Raycast [OK]
      Hint: Raycast checks ahead for obstacles [OK]
      Common Mistakes:
      • Choosing Update which runs every frame but doesn't detect
      • Confusing Instantiate with detection
      • Selecting Destroy which deletes objects
      3. What will be the output if the following Unity C# code runs and an obstacle is detected by the raycast?
      void Update() {
          if (Physics.Raycast(transform.position, transform.forward, out var hit, 5f)) {
              transform.Rotate(0, 90, 0);
              Debug.Log("Obstacle detected, turning right.");
          } else {
              transform.Translate(Vector3.forward * Time.deltaTime * 3);
          }
      }
      medium
      A. The object moves forward continuously without turning
      B. The object moves backward
      C. The object stops moving and no message is logged
      D. The object turns right and logs "Obstacle detected, turning right."

      Solution

      1. Step 1: Analyze raycast detection and response

        If the raycast hits an obstacle within 5 units, the object rotates 90 degrees on Y axis and logs a message.
      2. Step 2: Understand else behavior

        If no obstacle is detected, the object moves forward at speed 3 units per second.
      3. Final Answer:

        The object turns right and logs "Obstacle detected, turning right." -> Option D
      4. Quick Check:

        Obstacle detected = turn right + log message [OK]
      Hint: If raycast hits, rotate and log; else move forward [OK]
      Common Mistakes:
      • Ignoring the rotation when obstacle detected
      • Thinking object stops instead of turning
      • Assuming object moves backward
      4. Identify the error in this obstacle avoidance code snippet:
      void Update() {
          if (Physics.Raycast(transform.position, transform.forward, 5f)) {
              Debug.Log(hit.distance);
              transform.Rotate(0, 90, 0);
          }
      }
      medium
      A. The Rotate method parameters are incorrect
      B. The Raycast method is missing the 'out RaycastHit' parameter
      C. The if condition should use '==' instead of parentheses
      D. The Update method should be named FixedUpdate

      Solution

      1. Step 1: Check Raycast method signature

        Physics.Raycast requires an 'out RaycastHit' parameter to store hit info when using this overload.
      2. Step 2: Verify Rotate and method names

        Rotate parameters are correct for rotation; Update is valid for frame updates.
      3. Final Answer:

        The Raycast method is missing the 'out RaycastHit' parameter -> Option B
      4. Quick Check:

        Raycast needs 'out RaycastHit' [OK]
      Hint: Raycast needs 'out RaycastHit' to detect hits [OK]
      Common Mistakes:
      • Omitting the out parameter in Raycast
      • Confusing Rotate parameters
      • Thinking Update must be FixedUpdate
      5. You want your Unity object to avoid obstacles smoothly by turning gradually instead of instantly. Which approach should you use in your obstacle avoidance script?
      hard
      A. Use Quaternion.Slerp to rotate smoothly when obstacle detected
      B. Use transform.Rotate(0, 90, 0) instantly on detection
      C. Stop the object completely when obstacle is detected
      D. Ignore obstacles and keep moving forward

      Solution

      1. Step 1: Understand smooth rotation methods

        Quaternion.Slerp smoothly interpolates rotation over time, creating gradual turns.
      2. Step 2: Compare with instant rotation

        transform.Rotate(0, 90, 0) turns instantly, which is not smooth.
      3. Final Answer:

        Use Quaternion.Slerp to rotate smoothly when obstacle detected -> Option A
      4. Quick Check:

        Smooth turn = Quaternion.Slerp [OK]
      Hint: Use Quaternion.Slerp for smooth turning [OK]
      Common Mistakes:
      • Using instant rotation causing jerky movement
      • Stopping object instead of turning
      • Ignoring obstacles completely
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard