05 Setting up the Enemies

Setting up the enemy machines.

In this tutorial we’ll set up the enemy game objects. We’ll add the schematics we created in the previous tutorial using different machines.

The setup for all 3 enemies (Zombunny, ZomBear and Hellephant) is the same (except for minimal differences). The following component setup can be repeated for all enemy prefabs, or you can just copy the components and paste them on the other enemies.

The enemy prefabs can be found at Assets/Tutorial Resources/Prefabs/. We’ll add the components directly to the prefabs.

Object Variables #

First, we’ll set up the object variables of the enemies. Add an object variable component to the prefabs (e.g. using the component menu: Makinom > Scenes > Object Variables). Change the following settings.

  • Local Variables
    Enable this setting.
    The enemies can be spawned multiple times, so we don’t want them to share their variables.
  • Always Initialize
    Enable this setting.

Click on Add Variable to add an object variable.

  • Variable Key
    Set to health.
    Select the Value string type.
  • Type
    Select Int.
  • Operator
    Select Set.
  • Float Value
    Zombunny: Set to 100 (Value).
    ZomBear: Set to 100 (Value).
    Hellephant: Set to 300 (Value).

Copy the variable and change the following settings.

  • Variable Key
    Set to points.
  • Float Value
    Zombunny: Set to 10 (Value).
    ZomBear: Set to 10 (Value).
    Hellephant: Set to 50 (Value).

That’s it for the object variables.

Enemy Movement: Tick Machine #

Next, we’ll add the EnemyMovement schematic using a tick machine.

Add the component to the enemy prefabs (e.g. using the component menu: Makinom > Machines > Tick Machine). Change the following settings.

Start Settings #

  • Update
    Enable this setting.

Machine Execution Settings #

  • Schematic Asset
    Select EnemyMovement.
  • Execution Type
    Select Single.
  • Update Type
    Select Update.

Enemy Attack: Trigger Machine #

The enemy’s attack will be started while the player is within the enemy’s trigger.

Add a trigger machine component to the enemy prefabs (e.g. using the component menu: Makinom > Machines > Trigger Machine). Change the following settings.

Start Settings #

  • Trigger Stay
    Enable this setting.

Machine Execution Settings #

  • Schematic Asset
    Select EnemyAttack.
  • Execution Type
    Select Single.
  • Update Type
    Select Update.

Condition Settings #

The attack should only start if the enemy’s and player’s health is above 0 using our template.

Click on Add Condition, we’ll set up the variable conditions here.

  • Auto Check
    Select None.

In the added Condition 0, we’ll set up our variable condition.

  • Condition Type
    Select Variable.
  • Needed
    Select All.

Click on Add Variable.

  • Condition Type
    Select Template.
  • Template
    Select Is Alive.
  • Game Object (User Object)
    Select User.
    This’ll check the machine’s game object, i.e. the enemy.

Copy the added variable condition and change the following settings.

  • Game Object (User Object)
    Select Player.

Local Start Variables #

The Machine Start Variables we’ve set up in the schematic are automatically added here with their default values, so all we need to do is adjust them to our needs. Make sure both variables are enabled.

  • damage
    Zombunny: Set to 10.
    ZomBear: Set to 15.
    Hellephant: Set to 30.
  • attackTimeout
    We can keep the default value of 0.5 on all enemy prefabs.

Take Damage: Tagged Machine #

Now, we’ll add the TakeDamage schematic using a tagged machine that will be stared by the tag damage.

Add a tagged machine component to the enemy prefabs (e.g. using the component menu: Makinom > Machines > Tagged Machine). Change the following settings.

Start Settings #

Click on Add Starting Tag to add a tag that can start this machine.

  • Starting Tag
    Set to damage.

Machine Execution Settings #

  • Schematic Asset
    Select TakeDamage.
  • Execution Type
    Select Single.
  • Update Type
    Select Update.

Resource Overrides #

Expand the Resource Overrides to change the used audio clip.

  • Override Audio Clips
    Enable this setting.

Click on Add Audio Clip to add an audio clip that will be used.

  • Audio Clip
    Zombunny: Select ZomBunny Hurt.
    ZomBear: Select ZomBear Hurt.
    Hellephant: Select Hellephant Hurt.
    The audio clips can be found at Assets/Tutorial Resources/Audio/Effects/.

Enemy Death: Tagged Machine #

Finally, we’ll add the EnemyDeath schematic using a tagged machine started by the tag death.

Add a tagged machine component to the enemy prefabs (e.g. using the component menu: Makinom > Machines > Tagged Machine). Change the following settings.

Start Settings #

Click on Add Starting Tag to add a tag that can start this machine.

  • Starting Tag
    Set to death.

Machine Execution Settings #

  • Schematic Asset
    Select EnemyDeath.
  • Execution Type
    Select Single.
  • Update Type
    Select Update.

Resource Overrides #

Expand the Resource Overrides to change the used audio clip.

  • Override Audio Clips
    Enable this setting.

Click on Add Audio Clip to add an audio clip that will be used.

  • Audio Clip
    Zombunny: Select ZomBunny Death.
    ZomBear: Select ZomBear Death.
    Hellephant: Select Hellephant Death.
    The audio clips can be found at Assets/Tutorial Resources/Audio/Effects/.

And that’s it for now. Since we added the components directly on the prefabs, we don’t need to apply the changes.

Testing #

If you want to test your enemies, just drag them into the scene and click on Play. The enemis will move toward the player, if you shoot them, they’ll die once their health is gone. They aren’t yet able to damage the player, since we didn’t add the TakeDamage schematic to the player yet – we’ll do this later.

The next tutorial will handle UI setup.