June
16
2015

Setting up the pickup spawner.

In this tutorial we’ll create the schematic spawning pickups and set up the global machine playing the schematic.

Pickup Spawner: Schematic

First, we’ll set up the schematic spawning the pickups.

Open the Makinom editor, navigate to Schematics and create a new schematic. Change the following settings.

2d_platformer_12_pickup_spawner1

Settings

We’ll add the bomb crate and health crate as prefabs.

Prefabs

Click on Add Prefab Resource to add a prefab resource.

  • Name
    Set to Health.
  • Prefab
    Select healthCrate.
    The prefab can be found at Assets/Tutorial Resources/Prefabs/Pickup/.

Click on Add Prefab Resource to add another prefab resource.

  • Name
    Set to Bomb.
  • Prefab
    Select bombCrate.
    The prefab can be found at Assets/Tutorial Resources/Prefabs/Pickup/.

Wait

Add > Base > Wait

We’ll wait 5 seconds between pickup spawns.

  • Time (s)
    Set to 5 (Value).

Change Variables

Add > Value > Variable > Change Variables

We’ll use this node to create a spawn position with a random X-axis.

Click on Add Variable to add a variable change.

  • Change Type
    Select Variable.
  • Variable Key
    Set to position.
  • Variable Origin
    Select Local.
  • Type
    Select Vector3.
  • Operator
    Select Set.
  • Vector3 Type
    Select Set Axis.
  • X-Axis
    Select Random and set the 1st field to -15 and the 2nd field to 15.
  • Y-Axis
    Set to 15 (Value).
  • Z-Axis
    Set to 1 (Value).

Variable Fork

Add > Value > Variable > Variable Fork

We’ll use this node to check the player’s health – this will determine which pickup can be spawned.

If the player’s health is above 75, we’ll spawn a bomb. If the player’s health is below 25, we’ll spawn a health crate. In any other case, we’ll randomly spawn a bomb or health crate.

Variable Settings

  • Variable Key
    Set to health.
  • Variable Origin
    Select Object.
  • Object
    Select Player.

Click on Add Condition to add a variable condition.

  • Is Valid
    Enable this setting.
  • Exists
    Enable this setting.
  • Type
    Select Int.
  • Check Type
    Select Is Greater Equal.
  • Check Value
    Set to 75 (Value).

Click on Add Condition to add another variable condition.

  • Is Valid
    Enable this setting.
  • Exists
    Enable this setting.
  • Type
    Select Int.
  • Check Type
    Select Is Less Equal.
  • Check Value
    Set to 25 (Value).

Random

Add > Base > Random

This node is used to randomly play a next node. We’ll use it to randomly spawn a bomb or health crate in the next step.

This node is connected to the Failed slot of the Variable Fork node.

Click on Add Node to add a 2nd random slot – the node should now have 2 slots.

Spawn Prefab

Add > Game Object > Prefab > Spawn Prefab

We’ll use this node to spawn a bomb crate.

This node is connected to slot 0 of the Variable Fork node (health is greather equal 75) and the Random 0 slot of the Random node.

  • Prefab
    Select Prefab 1: Bomb.
  • Target Type
    Select Position.

Position

  • Vector3 Type
    Select Vector3 Variable.
  • Variable Key
    Set to position.
  • Variable Origin
    Select Local.

Spawn Prefab

Add > Game Object > Prefab > Spawn Prefab

We’ll use this node to spawn a health crate.

This node is connected to slot 1 of the Variable Fork node (health is less equal 25) and the Random 1 slot of the Random node.

  • Prefab
    Select Prefab 0: Health.
  • Target Type
    Select Position.

Position

  • Vector3 Type
    Select Vector3 Variable.
  • Variable Key
    Set to position.
  • Variable Origin
    Select Local.

That’s it for the schematic – click on Save Schematic and save it as PickupSpawner in Assets/Schematics/.

Pickup Spawner: Global Machine

Now we’ll set up the global machine handling our pickup spawning. You can learn more about global machines in this how-to.

Navigate to Base/Control > Global Machines and change the settings of the first global machine (Default). We’ve already used that global machine in our health pickup and bomb schematics.

Machine Execution Settings

  • Name
    Set to Pickup Spawner.
  • Schematic Asset
    Select PickupSpawner.
  • Execution Type
    Select Single.
  • Update Type
    Select Update.

Execution Settings

The pickup spawner should automatically start when the level was loaded to spawn the first pickup.

  • Global Machine Type
    Select Scene.

That’s it for the global machine – click on Save Settings to save the changes.

Updating the Game Starter

We need to do one more thing – because the global machine will only start when loading a level, it wont start when we play the scene in the editor (because that wont load the level, only after the player died this mechanic kicks in, as we reload it in that case). We’ll use the PickupSpawner schematic as a start schematic in the Game Starter.

Select the Game Starter game object in the scene hierarchy and change the following settings in the inspector.

  • Start Schematic Asset
    Select PickupSpawner.

And that’s it – don’t forget to save the scene.

Testing

Click on Play to start the game. Pickups will now be spawned after 5 seconds in the game. After a bomb exploded or a health crate was collected, the next pickup will be spawned after another 5 seconds.

The next tutorial will handle the HUDs.