SOVEREIGN MOON PRESENTS…
How to Add Triggers and Switches Using Bolt (No-Code Game Dev)
In this tutorial we’ll learn how to add triggers and switches to your game using Unity’s bolt add-on. Triggers allow you to open doors, turn on lights, change music and much more.
How to add Triggers & Switches Using Bolt
Today, Sovereign Moon Studios, the makers of your favorite NoCode game development course, are excited to bring you a new tutorial that will show you how to use triggers and switches within Unity’s free visual scripting add-on called Bolt.
Let’s jump in!
Introduction to Triggers
In our previous two tutorials we walked you through both how to rotate an object as well as how to move an object using Bolt. In today’s tutorial, we take things a step further by teaching you how to use triggers and switches in order to help you create more interesting game mechanics.
So let’s work towards getting your triggers set up.
Step 1: Begin By Setting Up Your Object
Triggers are powerful tools in the world of game design because you often use triggers to accomplish common game objectives. For example, you might want your character to trigger any of the following:
1. Opening or closing of a door
2. The unlocking of a scene
3. Turning on or off of a light switch
4. Manage game collectibles like gold, money or points
By the end of the tutorial, this is what we’ll have.
Notice when my character is outside of the object’s range, the object does not move. However, as my character approaches and triggers the object’s collider, the object begins to rotate.
However, I’m just using rotate as a simple example. After the trigger has been activated you can insert whatever unit makes the most sense for your game. For example, imagine you had a cave in your game and as your character entered the cave you wanted to play dark and dreary cave music. The logic I’m going to show you today is the exact same logic you would use to accomplish that task.
So let’s take a look at what we need to do.
Step 2: Add a Box Collider (Trigger)
With our object selected we need to add a box collider component. With this component added, I’ll collide with the object and won’t be able to pass through it.
However, if we jump back into our inspector tab and select “is trigger”, essentially, we’re changing this object from a collision object to a trigger object.
So now, when I play my game, I can walk through the object. Oftentimes you’ll want your trigger to be invisible, and if you want your trigger to be invisible, you can just turn off the mesh renderer of the object here, and that will remove the mesh of the cube.
Now notice when playing my game, the object is not visible, but the trigger area is still set. But let’s imagine we want to keep the object visible, while keeping the trigger active. We can do this by adding a 2nd box collider and not setting it to trigger. So now, one box collider is acting as a collider and the other one is acting as a trigger. Now for the box collider that’s acting as the trigger, let’s move out the trigger away from the object so that it’s bigger than the object. This will make it so that the character doesn’t need to walk very close to the object to trigger it.
We can hit the “edit bounding volume” button here and then just scale our invisible trigger up. So that’s all we need to do for the object
Step 3: Edit Your Flow Graph
Now we need to set up our flow graph.
So in our previous tutorials we were using an update event, which was forcing our object to rotate constantly with each frame of the game.
Now however, we only want our object to rotate if we move into it’s trigger area.
So if you’ve been following along with the series so far just delete everything you have in your flow graph to be able to start from scratch.
If you’re just tuning into this tutorial for the first time, what you’ll need to do is ensure that you have the object you want to trigger selected, and then add a new flow machine component to the object. Once you’ve done that you’ll need to create a new macro and then drag and drop that macro into your flow machine like this.
So now we should all be on the same page with an empty flow graph.
Step 4: Trigger the Event (Enter, Stay, Exit)
So we need to trigger and event and there are three common event types of trigger.
On trigger enter – which will trigger an event to take place when the character first enters the trigger area.
On trigger stay – which will trigger an event to continuously run when the character stays within the trigger area.
On trigger exit – which will trigger an event to stop when the character exits the trigger area.
For this tutorial, we’re going to use “on trigger stay” because we want to make this object rotate while we are in the trigger area.
So what we’re going to do is we’re going to look for a unit called “on trigger stay”. Here it is. One really important thing to take note of here. Notice this event is part of Unity’s physics system. This means that a lot of use cases for his unit will require that one of our objects has a rigid body component attached to it. So you can just select your character or game object and add a rigid body, you can turn off gravity and then you’re done. Now back in the graph we can search for “on trigger stay again “ and now we’ll select it and bring it into our flow graph now.
Step 5: Target the Character Tag
Next, we only want this trigger to be activated if our character walks within the area of the object. We don’t want it to trigger if an enemy or NPC walks within the area, so let’s set up a Unit which will allow for the identification of our player.
The unit we’ll use to do this is the “game object compare tag”. So what we’re saying here essentially, is that “on collision” we want Bolt to look for the tag of this particular game object. In our case, the game object we want to check is our character. So we need to find the tag of our game’s character.
To do this is very simple, we simply need to find our character in our hierarchy tab and then select it. Because we’re using 3D Game Kit, our character is named “Ellen”. Once selected look over in the inspector tab to see if your character currently has a “tag”. If your character doesn’t have a tag you can simply add one by clicking on “add tag” and then hit this “+” button and then name and save your tag. I’ve already done this and my player tag is set to “player”. But you can set your tag to whatever you want.
Once that is done, we can select our object again and navigate to the flow graph we’re working on. Now, we can simply add the tag of the player in this input field. Be sure to write the tag properly as this tag is case sensitive.
Also, as a side note I just want to draw your attention to a few unit details. Notice the compare tag unit is showing an orange circle. This color coding can really help you out. Let me pull up our final graph that we’ll be working towards to show you why color coding is so helpful.
In previous tutorials over on our no-code game development blog, I talked to you about the different types of input and outputs. We talked about the differences between strings, floats, integers, Booleans,
Here you’ll notice that everything is color coded to make things really easy for you. Strings are orange, Booleans are purple, and floats are blue. If this doesn’t’ make any sense to you, simply go back to our previous tutorials to learn more about unit types.
But as you can see here, icons and colors really help make the connecting of ports much easier on you because you’re given hints as to what you need to connect. Here for instance, we see the icon for the collider, here is the icon for a game object, here is the transform component icon, because remember, rotate is part of the transform components settings and here we have a music icon showing that bolt is looking for a music clip.
So hopefully this will help guide you along the way as you try to master Bolt.
Okay, let’s rewind now and get back to where we were.
Step 6: Add a Branch
So here, we have our compare tag added. Now we need to create a branch to figure out if our previous statement is true or false. So we simply drag this wire up and look for “branch”. Once you find it, add it to your flow graph.
The branch unit will determine if the object that entered into the trigger has this player tag associated with it. If it does, it will fire whatever we set to be true, if the object that entered the trigger area does not have a tag that is set to player, we’ll fire the “false” section of this branch.
Actually, we can leave false empty, because we don’t want anything to happen if a non player enters this region.
But let’s set up what we want to have happen, if this statement is true.
Step 7: Determine What You Want to Trigger or Switch On / Off
So this is where things get really interesting, because this is where you determine what will trigger. For example, you could play a song, open a door, increase your player’s gold, transfer your player to a new map, turn on a light, destroy an object or change levels. The possibilities are endless. My goal with this tutorial is just to show you the logic, so we’re just going to do two simple things right now. We’ll make the object rotate and we’ll play a song.
So let’s set object rotation first. So from the true port, wire up a new unit called transform rotate, what we’ll do here is set our yAngle to 1. Now when we play our game, we’ll be able to walk in and out of our trigger area and we’ll notice the object moves and stops based on if we fall inside our outside the trigger zone.
Now, we could even make this a little more interesting, by maybe adding music to the trigger as well. We could jump into our flow graph again and to make this really easy just search for “audio source” and “Play clip at point. All you have to do now is search for the audio clip you want to play and add it here. I’ll set my volume to 1 and I’ll play my game again.
Notice this time when I enter into the trigger zone, the object rotates and some audio plays.
So that’s all I have for you for today’s tutorial. I hope you found this helpful and remember, if you want to dive deeper and take your no-code game dev skills to the next level, we offer a comprehensive course were we go into much more detail than we do in our free YouTube videos, so if you’re interested in that course, visit our homepage now!
Thanks for stopping by today!
Sovereign Moon Studios is dedicated to helping game enthusiasts bring their creative visions to life without having to know how to code or draw. Our NoCode game development course teaches indie game devs how to build breathtaking games from scratch.
Want to Make Video Games?
Do you love game design? So do we! For this reason, we created a no-code video game development course that walks you through the process of bringing your game visions to life without needing to know how to program and without having to be an artist. We will teach you how to bring your game to life in our 4 hour 36 module no-code game development course.