Bird
Raised Fist0
Unityframework~5 mins

Prefabs and reusable objects in Unity - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a prefab in Unity?
A prefab is a reusable game object template that you can create once and use many times in your scenes. It helps keep things organized and consistent.
Click to reveal answer
beginner
How do prefabs help in game development?
Prefabs let you create objects once and reuse them multiple times, saving time and making it easy to update all copies by changing the original prefab.
Click to reveal answer
intermediate
What happens when you modify a prefab instance in a scene?
You can override properties on the instance without changing the original prefab. But if you update the prefab asset, all instances update unless overridden.
Click to reveal answer
beginner
How do you create a prefab in Unity?
Drag a game object from the scene hierarchy into the Project window. This creates a prefab asset you can reuse.
Click to reveal answer
intermediate
Can prefabs contain other prefabs?
Yes, prefabs can be nested. This means a prefab can include other prefabs inside it, making complex reusable objects.
Click to reveal answer
What is the main benefit of using prefabs in Unity?
ACreate 2D sprites only
BMake the game run faster
CReuse objects easily and update all copies at once
DAutomatically write code for you
How do you create a prefab from a game object in Unity?
ARight-click and select 'Create Prefab' in the scene
BDrag the object from the scene to the Project window
CUse the 'File > New Prefab' menu
DDrag the object from Project to scene
What happens if you change a prefab asset after creating instances?
AOnly new instances reflect changes
BThe prefab asset deletes automatically
CInstances stay the same forever
DAll instances update to match the prefab changes
Can you override properties on a prefab instance without changing the prefab asset?
AYes, you can override instance properties
BNo, all changes affect the prefab asset
COnly if you duplicate the prefab
DOnly in 2D projects
What is a nested prefab?
AA prefab inside another prefab
BA prefab with no components
CA prefab saved outside the project
DA prefab that cannot be reused
Explain what a prefab is and why it is useful in Unity game development.
Think about making copies of a toy that you can change all at once.
You got /3 concepts.
    Describe the process to create and use a prefab in a Unity project.
    Imagine saving a model to reuse it many times.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a prefab in Unity?
      easy
      A. To save a game object for reuse multiple times
      B. To write scripts for game logic
      C. To create animations for characters
      D. To design user interface layouts

      Solution

      1. Step 1: Understand prefab concept

        A prefab stores a game object with all its components and settings.
      2. Step 2: Identify prefab use

        Prefabs allow easy reuse of objects without recreating them from scratch.
      3. Final Answer:

        To save a game object for reuse multiple times -> Option A
      4. Quick Check:

        Prefab = reusable object [OK]
      Hint: Prefabs store objects to reuse easily in your game [OK]
      Common Mistakes:
      • Confusing prefabs with scripts
      • Thinking prefabs are only for animations
      • Believing prefabs are UI elements
      2. Which of the following is the correct way to create a copy of a prefab in a Unity script?
      easy
      A. Clone(prefab);
      B. Copy(prefab);
      C. Duplicate(prefab);
      D. Instantiate(prefab);

      Solution

      1. Step 1: Recall Unity method for prefab copies

        Unity uses the Instantiate() method to create copies of objects.
      2. Step 2: Check method names

        Only Instantiate() is a valid Unity method for this purpose.
      3. Final Answer:

        Instantiate(prefab); -> Option D
      4. Quick Check:

        Instantiate() creates prefab copies [OK]
      Hint: Use Instantiate() to copy prefabs in scripts [OK]
      Common Mistakes:
      • Using Copy() which does not exist
      • Trying Clone() or Duplicate() which are invalid
      • Forgetting parentheses after Instantiate
      3. What will be the output of this Unity C# code snippet?
      public GameObject prefab;
      void Start() {
          GameObject obj = Instantiate(prefab);
          Debug.Log(obj.name);
      }
      medium
      A. The name of the prefab with "(Clone)" appended
      B. The original prefab name without changes
      C. An error because prefab is not assigned
      D. Nothing is printed

      Solution

      1. Step 1: Understand Instantiate behavior

        Instantiate creates a copy of the prefab and appends "(Clone)" to its name.
      2. Step 2: Analyze Debug.Log output

        Debug.Log prints the name of the new object, which includes "(Clone)".
      3. Final Answer:

        The name of the prefab with "(Clone)" appended -> Option A
      4. Quick Check:

        Instantiate adds "(Clone)" to name [OK]
      Hint: Instantiate adds "(Clone)" to copied prefab names [OK]
      Common Mistakes:
      • Expecting original prefab name without "(Clone)"
      • Assuming no output is printed
      • Forgetting prefab must be assigned in inspector
      4. Identify the error in this Unity C# code that tries to instantiate a prefab:
      public GameObject prefab;
      void Start() {
          GameObject obj = Instantiate(prefab, new Vector3(0, 0, 0));
      }
      medium
      A. Vector3 cannot be used as a position
      B. prefab must be assigned in the inspector
      C. Instantiate requires a rotation parameter when using position
      D. Instantiate cannot be called in Start()

      Solution

      1. Step 1: Check Instantiate method overloads

        Instantiate with position requires both position and rotation parameters.
      2. Step 2: Identify missing rotation argument

        The code misses the rotation argument, causing a compile error.
      3. Final Answer:

        Instantiate requires a rotation parameter when using position -> Option C
      4. Quick Check:

        Instantiate(position) needs rotation too [OK]
      Hint: Instantiate with position needs rotation argument [OK]
      Common Mistakes:
      • Omitting rotation parameter
      • Assuming Vector3 alone is enough
      • Thinking Instantiate can't be used in Start()
      5. You want to create 5 copies of a prefab at different positions along the X-axis, spaced 2 units apart, in Unity. Which code snippet correctly does this?
      hard
      A. for (int i = 0; i < 5; i++) { Instantiate(prefab); prefab.transform.position = new Vector3(i * 2, 0, 0); }
      B. for (int i = 0; i < 5; i++) { Instantiate(prefab, new Vector3(i * 2, 0, 0), Quaternion.identity); }
      C. Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity); Instantiate(prefab, new Vector3(1, 0, 0), Quaternion.identity); Instantiate(prefab, new Vector3(2, 0, 0), Quaternion.identity); Instantiate(prefab, new Vector3(3, 0, 0), Quaternion.identity); Instantiate(prefab, new Vector3(4, 0, 0), Quaternion.identity);
      D. for (int i = 0; i < 5; i++) { prefab.transform.position = new Vector3(i * 2, 0, 0); Instantiate(prefab); }

      Solution

      1. Step 1: Understand correct Instantiate usage with position

        Instantiate(prefab, position, rotation) creates a copy at the given position.
      2. Step 2: Check loop for multiple copies

        for (int i = 0; i < 5; i++) { Instantiate(prefab, new Vector3(i * 2, 0, 0), Quaternion.identity); } uses a loop to create 5 copies spaced by 2 units on X-axis correctly.
      3. Step 3: Identify errors in other options

        The loop that instantiates first then moves prefab results in clones at incorrect positions (0, 0, 2, 4, 6); the manual five Instantiate calls use 1-unit spacing (0,1,2,3,4) instead of 2 units and are repetitive; the loop that moves prefab before instantiating spawns all at (0,0,0) because no position parameter is passed.
      4. Final Answer:

        for (int i = 0; i < 5; i++) { Instantiate(prefab, new Vector3(i * 2, 0, 0), Quaternion.identity); } -> Option B
      5. Quick Check:

        Loop + Instantiate with position = multiple copies [OK]
      Hint: Use loop with Instantiate(prefab, position, rotation) [OK]
      Common Mistakes:
      • Changing prefab position instead of copy
      • Not providing rotation in Instantiate
      • Writing repetitive Instantiate calls instead of loop
      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