📖 Scenario: You are making a simple Unity scene where you want to create some objects and give them clear names. This helps you find and manage them easily in the game.
🎯 Goal: Build a Unity script that creates two GameObjects and names them exactly as instructed.
📋 What You'll Learn
Create GameObjects using new GameObject()
Assign names to GameObjects using the name property
Use exactly the names Player and Enemy
💡 Why This Matters
🌍 Real World
Naming GameObjects clearly helps you organize your scene and find objects easily when building games.
💼 Career
Game developers often create and name objects dynamically in code to build interactive and manageable game worlds.
Progress0 / 4 steps
1
Create a GameObject called Player
Write a line of code to create a new GameObject called player using new GameObject() and assign it to the variable player.
Unity
Hint
Use GameObject player = new GameObject(); to create the object.
2
Create a GameObject called Enemy
Write a line of code to create a new GameObject called enemy using new GameObject() and assign it to the variable enemy. Keep the previous code for player.
Unity
Hint
Use GameObject enemy = new GameObject(); to create the enemy object.
3
Name the Player GameObject
Set the name property of the player GameObject to the string "Player". Keep the previous code for player and enemy creation.
Unity
Hint
Use player.name = "Player"; to name the player object.
4
Name the Enemy GameObject and print names
Set the name property of the enemy GameObject to the string "Enemy". Then print both player.name and enemy.name using Debug.Log(). Keep all previous code.
Unity
Hint
Use enemy.name = "Enemy"; and Debug.Log(player.name); Debug.Log(enemy.name); to show the names.
Practice
(1/5)
1. What does the following code do in Unity? GameObject player = new GameObject("Hero");
easy
A. Creates a new script called "Hero".
B. Deletes the GameObject named "Hero" from the scene.
C. Renames an existing GameObject to "Hero".
D. Creates a new GameObject named "Hero" and assigns it to variable player.
Solution
Step 1: Understand the new GameObject creation
The code uses new GameObject("Hero") which creates a new GameObject with the name "Hero".
Step 2: Assign the new GameObject to a variable
The created GameObject is stored in the variable player for later use.
Final Answer:
Creates a new GameObject named "Hero" and assigns it to variable player. -> Option D
Quick Check:
new GameObject("Name") creates and names GameObject [OK]
Hint: new GameObject("Name") creates and names in one step [OK]
Common Mistakes:
Thinking it renames an existing object
Confusing creation with deletion
Assuming it creates a script
2. Which of the following is the correct syntax to create a GameObject named "Enemy" in Unity?
easy
A. GameObject enemy = new GameObject("Enemy");
B. GameObject enemy = new GameObject(Enemy);
C. GameObject enemy = GameObject("Enemy");
D. GameObject enemy = new GameObject['Enemy'];
Solution
Step 1: Check the constructor syntax
The GameObject constructor requires a string name inside double quotes, so "Enemy" is correct.
Step 2: Validate the assignment
The new GameObject is assigned to variable enemy using the = operator, which is correct.
Final Answer:
GameObject enemy = new GameObject("Enemy"); -> Option A
Quick Check:
Use quotes for string names in new GameObject() [OK]
Hint: Use double quotes for names in new GameObject("Name") [OK]
Common Mistakes:
Omitting quotes around the name
Using parentheses without new keyword
Using square brackets instead of parentheses
3. What will be the name of the GameObject created by this code?
GameObject obj = new GameObject("Tree");
Debug.Log(obj.name);
medium
A. Tree
B. null
C. GameObject
D. obj
Solution
Step 1: Create GameObject with name "Tree"
The constructor new GameObject("Tree") sets the GameObject's name property to "Tree".
Step 2: Print the name property
Debug.Log(obj.name) outputs the name of the GameObject, which is "Tree".
Final Answer:
Tree -> Option A
Quick Check:
obj.name equals the name given in constructor [OK]
Hint: obj.name matches the string used in new GameObject("Name") [OK]
Common Mistakes:
Thinking obj.name is the variable name
Assuming default name 'GameObject'
Confusing output with variable name
4. Identify the error in this code snippet:
GameObject enemy = new GameObject(Enemy);
enemy.name = "Orc";
medium
A. Cannot assign name after creation.
B. Missing quotes around Enemy in new GameObject.
C. Variable enemy is not declared.
D. GameObject cannot be created with new keyword.
Solution
Step 1: Check the constructor argument
The argument Enemy is missing quotes, so it is treated as a variable, causing an error.
Step 2: Confirm name assignment is valid
Assigning enemy.name = "Orc"; is allowed and correct after creation.
Final Answer:
Missing quotes around Enemy in new GameObject. -> Option B
Quick Check:
String names need quotes in new GameObject("Name") [OK]
Hint: Always put quotes around the name string in new GameObject() [OK]
Common Mistakes:
Forgetting quotes around string names
Thinking name can't be changed after creation
Confusing variable declaration errors
5. You want to create three GameObjects named "Enemy1", "Enemy2", and "Enemy3" using a loop. Which code correctly creates and names them?
hard
A. for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" + "i");
}
B. for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject(Enemy + i);
}
C. for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" + i);
}
D. for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" * i);
}
Solution
Step 1: Check string concatenation in loop
for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" + i);
} correctly concatenates the string "Enemy" with the integer i using + operator, producing "Enemy1", "Enemy2", "Enemy3".
Step 2: Validate syntax and naming
for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" + i);
} uses quotes correctly and creates new GameObjects with the intended names inside the loop.
Final Answer:
for (int i = 1; i <= 3; i++) {
GameObject enemy = new GameObject("Enemy" + i);
} -> Option C
Quick Check:
Use + to join strings and numbers for names [OK]
Hint: Use "Enemy" + i to name GameObjects in loops [OK]
Common Mistakes:
Omitting quotes around "Enemy"
Using variables without quotes
Trying to multiply strings
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.