Bird
Raised Fist0
Unityframework~10 mins

Creating and naming GameObjects in Unity - Visual Walkthrough

Choose your learning style10 modes available
Concept Flow - Creating and naming GameObjects
Start
↓
Create GameObject
↓
Assign Name
↓
Use GameObject in Scene
↓
End
This flow shows how to create a new GameObject and give it a name before using it in the scene.
Execution Sample
Unity
GameObject myObject = new GameObject();
myObject.name = "Player";
Debug.Log(myObject.name);
This code creates a new GameObject, names it "Player", and prints its name.
Execution Table
StepActionGameObject CreatedName AssignedOutput
1Create new GameObject with default constructorYesEmpty string
2Assign name "Player" to GameObjectYesPlayer
3Print GameObject nameYesPlayerPlayer
4End of codeYesPlayerExecution stops
💡 Code ends after printing the GameObject's name.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
myObjectnullGameObject instance (unnamed)GameObject instance named "Player"GameObject instance named "Player"
Key Moments - 2 Insights
Why does the GameObject have no name right after creation?
When created with new GameObject(), it starts with an empty name as shown in step 1 of the execution_table. You must assign a name explicitly.
What happens if you print the name before assigning it?
It prints an empty string or default name because the name property is empty until you assign it, as seen between steps 1 and 2.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the name of the GameObject after step 1?
A"Player"
Bnull
CEmpty string
D"GameObject"
💡 Hint
Check the 'Name Assigned' column in row for step 1 in execution_table.
At which step is the GameObject's name set to "Player"?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Look at the 'Action' and 'Name Assigned' columns in execution_table.
If you change the name assignment to "Enemy", what will be printed at step 3?
A"Player"
B"Enemy"
CEmpty string
Dnull
💡 Hint
Refer to the 'Output' column in execution_table and imagine the name assigned changed.
Concept Snapshot
Create a GameObject with: GameObject obj = new GameObject();
Assign a name: obj.name = "NameHere";
Use Debug.Log(obj.name) to print the name.
New GameObjects start unnamed.
Naming helps identify objects in the scene.
Full Transcript
This example shows how to create a new GameObject in Unity using the default constructor. Initially, the GameObject has no name. We then assign the name "Player" to it by setting the name property. Finally, we print the name to the console, which outputs "Player". This process helps organize and identify objects in your game scene.

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

  1. Step 1: Understand the new GameObject creation

    The code uses new GameObject("Hero") which creates a new GameObject with the name "Hero".
  2. Step 2: Assign the new GameObject to a variable

    The created GameObject is stored in the variable player for later use.
  3. Final Answer:

    Creates a new GameObject named "Hero" and assigns it to variable player. -> Option D
  4. 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

  1. Step 1: Check the constructor syntax

    The GameObject constructor requires a string name inside double quotes, so "Enemy" is correct.
  2. Step 2: Validate the assignment

    The new GameObject is assigned to variable enemy using the = operator, which is correct.
  3. Final Answer:

    GameObject enemy = new GameObject("Enemy"); -> Option A
  4. 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

  1. Step 1: Create GameObject with name "Tree"

    The constructor new GameObject("Tree") sets the GameObject's name property to "Tree".
  2. Step 2: Print the name property

    Debug.Log(obj.name) outputs the name of the GameObject, which is "Tree".
  3. Final Answer:

    Tree -> Option A
  4. 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

  1. Step 1: Check the constructor argument

    The argument Enemy is missing quotes, so it is treated as a variable, causing an error.
  2. Step 2: Confirm name assignment is valid

    Assigning enemy.name = "Orc"; is allowed and correct after creation.
  3. Final Answer:

    Missing quotes around Enemy in new GameObject. -> Option B
  4. 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

  1. 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".
  2. 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.
  3. Final Answer:

    for (int i = 1; i <= 3; i++) { GameObject enemy = new GameObject("Enemy" + i); } -> Option C
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard