📖 Scenario: You are creating a simple game in Unity where an enemy AI challenges the player by moving towards them. This project will help you understand how AI behavior makes games more interesting and challenging.
🎯 Goal: Build a basic enemy AI script that moves the enemy towards the player when the player is within a certain distance. This shows how AI can create challenge by reacting to the player's position.
📋 What You'll Learn
Create a Vector3 variable for the player's position
Create a float variable for the detection range
Write code to check the distance between enemy and player
Make the enemy move towards the player if within range
💡 Why This Matters
🌍 Real World
Game developers use AI scripts like this to make enemies that react to players, creating fun and challenging gameplay.
💼 Career
Understanding basic AI movement is essential for game programming jobs, especially in Unity game development.
Progress0 / 4 steps
1
Set up player position variable
Create a Vector3 variable called playerPosition and set it to new Vector3(0, 0, 0).
Unity
Hint
Use Vector3 to store 3D positions. Initialize it with (0, 0, 0).
2
Add detection range variable
Add a float variable called detectionRange and set it to 5.0f.
Unity
Hint
Use float for decimal numbers. Add f after the number.
3
Check distance and move enemy
Write an if statement that checks if the distance between transform.position and playerPosition is less than detectionRange. Inside the if, move the enemy towards the player by setting transform.position to Vector3.MoveTowards(transform.position, playerPosition, 0.1f).
Unity
Hint
Use Vector3.Distance to find distance. Use Vector3.MoveTowards to move smoothly.
4
Complete enemy AI behavior
Wrap the code inside the Update() method so it runs every frame, making the enemy continuously check and move towards the player.
Unity
Hint
The Update() method runs every frame in Unity. Put your movement code inside it.
Practice
(1/5)
1. Why does AI make games more challenging for players?
easy
A. Because AI controls characters that react and adapt to player actions
B. Because AI makes the game graphics better
C. Because AI reduces the number of levels in the game
D. Because AI slows down the game speed
Solution
Step 1: Understand AI role in games
AI controls game characters to behave smartly, reacting to what players do.
Step 2: Identify how this affects challenge
Smart reactions make the game less predictable and more difficult.
Final Answer:
Because AI controls characters that react and adapt to player actions -> Option A
Quick Check:
AI reaction = challenge [OK]
Hint: AI makes characters smart and reactive to players [OK]
Common Mistakes:
Thinking AI improves graphics
Believing AI reduces game levels
Assuming AI slows game speed
2. Which of the following is the correct way to check a condition in Unity C# AI script?
easy
A. if playerHealth < 50 then Attack();
B. if (playerHealth < 50) Attack(); else
C. if playerHealth < 50 { Attack(); }
D. if (playerHealth < 50) { Attack(); }
Solution
Step 1: Recall C# syntax for if statements
In C#, conditions use parentheses and braces: if (condition) { code }
Step 2: Compare options to correct syntax
if (playerHealth < 50) { Attack(); } matches correct syntax; others have syntax errors.
Final Answer:
if (playerHealth < 50) { Attack(); } -> Option D
Quick Check:
C# if syntax = if (condition) { } [OK]
Hint: Use parentheses and braces for if in C# [OK]
Common Mistakes:
Omitting parentheses around condition
Using 'then' keyword (not in C#)
Leaving else without code block
3. What will be the output of this Unity C# code snippet controlling AI behavior?
int playerDistance = 10;
if (playerDistance < 5) {
Debug.Log("Attack");
} else {
Debug.Log("Chase");
}
medium
A. Chase
B. Error
C. No output
D. Attack
Solution
Step 1: Check the condition playerDistance < 5
playerDistance is 10, which is not less than 5, so condition is false.
Step 2: Determine which branch runs
Since condition is false, the else block runs, printing "Chase".
Final Answer:
Chase -> Option A
Quick Check:
10 < 5? No, so output = Chase [OK]
Hint: Check condition truth to pick output branch [OK]
Common Mistakes:
Assuming condition is true without checking value
Confusing else and if blocks
Expecting no output when else runs
4. Identify the error in this Unity C# AI script snippet:
if playerVisible == true
{
Attack();
}
medium
A. Using '==' instead of '=' for assignment
B. Missing semicolon after Attack()
C. Missing parentheses around the if condition
D. Braces should be parentheses
Solution
Step 1: Check if statement syntax in C#
C# requires parentheses around the condition in if statements.
Step 2: Identify the error in the code
The code lacks parentheses around 'playerVisible == true', causing syntax error.
Final Answer:
Missing parentheses around the if condition -> Option C
Quick Check:
if condition needs ( ) in C# [OK]
Hint: Always put conditions inside parentheses in if [OK]
Common Mistakes:
Forgetting parentheses in if statements
Confusing '==' with '=' for comparison
Misplacing braces
5. You want an AI enemy in Unity to choose between attacking or running away based on its health. Which code snippet correctly implements this logic?
hard
A. if enemyHealth > 30 then Attack() else RunAway()
B. if (enemyHealth > 30) { Attack(); } else { RunAway(); }
C. if (enemyHealth < 30) { Attack(); } else { RunAway(); }
D. if (enemyHealth = 30) { Attack(); } else { RunAway(); }
Solution
Step 1: Understand the logic needed
If enemy health is high (greater than 30), it should attack; otherwise, run away.
Step 2: Check each option's condition and syntax
if (enemyHealth > 30) { Attack(); } else { RunAway(); } correctly checks if health is greater than 30 and uses proper C# syntax.
Final Answer:
if (enemyHealth > 30) { Attack(); } else { RunAway(); } -> Option B
Quick Check:
Health > 30 means attack, else run [OK]
Hint: Use if (condition) { } else { } with correct comparison [OK]
Common Mistakes:
Using wrong comparison operators
Missing parentheses or braces
Using assignment '=' instead of comparison '=='
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.