Simple Spawner

Script Component to spawn PickUp Prefab gameObjects.

Objects to Spawn - PickUp Prefabs

PickUp Prefabs to be Spawned in the MiniGame should have the following configuration: See PickUp PreFabs

  • PickUp GameObjects should be a PreFab

  • A SpriteRenderer Component

  • At least 1 Collider2D component with IsTrigger set to true (can have additional nested Collider2D components if necessary)

  • A PickUp script component, with the public attributes like: value, type set in the inspector.

  • GameObject: Tag: "Collectible" or "Hazard"

  • Can have a Rigidbody2D if the spawned object will be moving

  • Can have an Animator component if the object will be animated

    Important: The PickUp Prefabs must have Tag that corresponds to Tags in OnTriggerEnter2D( ).

Simple Spawner Logic

Logic Overview: Define variables that can be customized for each instance of a Spawner:

  • Specify PickUp prefabs to spawn ( good, bad )

  • Specify total number of prefabs to spawn (numToSpawn)

  • Specify probability of bad prefabs to spawn. (chanceToSpawnBad)

  • Constrain where objects will be spawned. (xRange, yRange)

  • Determine time between spawning objects (pauseTime)

  • Define boolean variable that can toggle: (stop, start) spawning

Spawner Methods, Helper Methods

Start Spawning:

  • SpawnPrefab( )

    • private method, executed in a loop in StartSpawning( )

    • spawns 1 prefab instance - with some probability of it being good / bad type

    • will only spawn a prefab if activeSpawning is true;

  • StartSpawning ( )

    • public method to be executed in MiniGameManager

    • For testing, we'll start with calling this in Start( ) - we'll remove this code later

    • has a loop that invokes SpawnPrefab( ) multiple times with delays

Stop Spawning:

  • DestroyAllSpawnedObjects( )

    • Creates Array of PickUps by Finding all items of type < PickUp > in the scene

  • StopAllSpawning( )

    • Cancels all Invoked SpawnPrefab( ) methods

    • Sets activeSpawning to false;

    • Executes DestroyAllSpawnedObjects( )

Important Spawner GameObject Configuration Details:

When initializing the Inspector Panel for Spawner Component: 1. Delete all PickUp Prefab gameObjects from the Scene 2. Select Original Prefab from Assets: GoodPrefab, BadPrefab (from the Assets tab) see image below

Select Prefab from Assets Tab, Not the Scene Tab
Select Prefab From Assets, Not from the Scene

Spawner.cs

  • The code below creates a simple spawner.

  • Create a C# Script in your project Assets: Spawner.

  • Double-click the script so that it opens in Visual Studio.

  • Add the code from below to the script.

  • In Visual Studio, build to compile the script.

  • In Unity, Add the Spawner.cs component to an empty GameObject, Spawner in the scene.

Last updated

Was this helpful?