Assignment 2 is the second Foundation Assignment, graded out of 10. It forms part of the 60% Foundation Assignments block (pass all six and your lowest passing grade is dropped).
<aside> <img src="/icons/git_blue.svg" alt="/icons/git_blue.svg" width="40px" />
Fork and Clone via: https://gitlab.utwente.nl/getxr2026/a2-getxr-assignment
The Git workflow (forking, cloning outside cloud-synced storage, staging companion .meta files, and pushing via GitHub Desktop) follows the same process described for A1: Basic Movement.
Repository: Fork a2-getxr-assignment as getxr-a2 (Private), and share it with the getxr2026 group as Reporter.
Git Help & Guide: For step-by-step setup, credential management, Git LFS, and troubleshooting, see the Using GitLab & GitHub Desktop guide.
</aside>
In this assignment, you transition from controlling a single object to building a dynamic real-time gameplay loop. You will build a Unity scene centered around runtime instantiation, collection tracking, and physics-driven state changes. Implement the following:
List<GameObject>) that tracks all spawned objects in memory and enforces a capacity limit.You can reuse your Player prefab and Mover.cs from A1 (or a simple moving primitive) to interact with spawned objects.
Do not spend time looking for fancy 3D models or searching asset packs. Grading is only based on your C# scripting, physics triggers, and memory management. Basic Unity 3D primitives (Cubes, Spheres, Capsules) with colored materials are enough for a 10/10. It just needs to be clear what is happening in the scene:
Mover.cs (from A1).Collectible.prefab — add the trigger Collider and kinematic Rigidbody as described below, colored Yellow.score += 10, and prunes the list reference.Fork the template:
Assets/Scenes/A2-Scene.unity) has an empty Spawner GameObject marking where it goes — attach Spawner.cs to it and wire up its Prefab To Spawn field.