PickUp PreFabs
Last updated
Last updated
Throughout our game we will want to have game items for the player to collide with to earn score points or to lose health value. These will be called PickUp items. We'll create a simple script component: PickUp.cs that allows setting a point value for each item instance. We'll turn these gameObjects into Prefabs, which are stored as a reusable project asset.
In Unity, we'll want to create and configure gameObjects that will have the PickUp.cs script component attached to give desired behavior. The PickUp objects in your game must have tag: Collectible, at least one should have tag: Hazard.
Create a 2D Sprite GameObject
Set the Sorting Layer to Spawned (See SortingLayers)
Physics2D Collision: Add a Collider2D to the GameObject, configure collider shape
Configure the Collider2D to be isTrigger == true
Tags: Create custom Tags, set a tag for each PickUp gameObjects: "Collectible", "Hazard", other? See images below
Physics2D Movement Optional: Add Rigidbody2D if the gameObject will move
Add additional Collider2D inside the trigger Collider2D, to keep this moving gameObject from falling through the floor's Collider2D.
Script Logic: Add PickUp.cs script (see below)
Select type from dropdown in inspector
Set value, set with a positive value ( Collectibles, Hazards )
Prefab: Drag into Project Assets Resource Folder to create as a prefab
Prefabs provide a method for turning any gameObject into an asset, whereas normally a gameObject is defined strictly within the scene where it was first created. Prefabs allow instantiation (spawning) of gameObjects during gamePlay. Prefabs can be exported from your project and reused in another Unity project. For any gameObject that is non-trivial, creating a prefab ensures that you'll aways have a saved version of the object, in case a particular scene gets corrupted.
Unity’s Prefab system allows you to create, configure, and store a GameObject complete with all its components, property values, and child GameObjects as a reusable Asset. The Prefab Asset acts as a template from which you can create new Prefab instances in the Scene Any edits that you make to a Prefab Asset are automatically reflected in the instances of that Prefab, allowing you to easily make broad changes across your whole Project without having to repeatedly make the same edit to every copy of the Asset. Unity Manual
Unique Prefab Instances vs Asset-Version of Prefab: As described above: if you make edits to the asset-version of a prefab, then those changes are immediately reflected in all instances across your project. If you make changes to a prefab instance within a scene, those changes will not impact any other prefabs, unless you select to apply those changes to the level of the asset-version. It is best to get your gameObject configured to it's final state before making the original prefab, otherwise, you may make changes (like adding a script component) to a gameObject in a scene, and forget that those changes do not impact the asset-version of the prefab.
This is the first version of the PickUp Class Script, this will be modified in Project 3.