Okay, so let's start working on the game over menu popping up. So it's also pretty simple. Open up the app initialize script. And we're going to create a new, public void, game over. And we can basically copy everything from the pause menu. But obviously, this will be false.
Because we don't want the in many UI to be on. We want the game over UI to be on. So using that we want to do is if we look at our game, we have inside the in game, the game over menu UI, we have a heart which is a show Add button. So we need to create a method for when someone clicks on this button. When someone clicks on this, we want to show an ad, and then give them an extra life. So we're going to create that method first, and then in a later episode, we'll actually deal with the functionality of creating the Add system.
But for now let's just create a new public. public void show, ad. And inside of show ad, we'll just want to comment, fix later. Because this is something that we will need to fix later. But just so we can understand how things are going, we can just copy this. Start couraging here.
Awesome. So if we go back over to unity, and we go to the heart show add, we can on, add an on click functionality, we can drag over the scene manager. We can add a app initialize, show add. So when we actually fix this game, later on, when we actually implement the show ad code, we will actually have a another Boolean here. They will basically say, well, have we seen the ad before? And it's like, well, no, if we haven't seen that before, then we're allowed to press the button otherwise would not let her press the button.
But right now, just for testing purposes, we're just going to put this in here. Fantastic. So we've got a game over working, and we've got our show ad working. But how does void Game Over get cold? The player needs to run into something and then it needs to, then that's when we need to call the method. So how do we do that?
Because the app initialize script isn't connected to the player at all. Okay, so this is where we do some magic. We're going to go over to our player script. And you'll see we've got this audio source this time, if we run into a triangle, this happens here. Well, we can actually call a method on our app initialize script. And we can actually call the game over method because it's public.
But how do we do that? Well, first we need to create a reference inside the player class to our script, such as the top here we can say public game object scene manager. And then underneath this play one shot audio source inside triangle, we can just call the game over method from there. So we can actually say, scene manager. dot get component. app, initialize, open parentheses, close parentheses, dot, get him over, open parentheses, close parentheses, done.
So now when we run into a triangle, it's going to call a game over method. It's going to move over to the app, initialize script. It's going to call this method here. And that method, first of all, it makes the player stop at the position. Great. It says game has started equals true, great, and it pops up the game over UI.
Itself says that that active so that menu pops up. Awesome. So then we have the options. To restart the game, and we have the option to show add. So we've done the show add functionality, but we also have the option to restart the game. So to do that, we just need to create a another public void, restart game.
And this one's going to be a little bit tricky, because basically, we need to create an we need to start with a new namespace. Because we're dealing with scenes now, we just need to write using unity, engine dot scene management. Cool. So then what this does is it gives us more functionality inside of our code here. And in underneath restart game, we can just load the same scene that we're actually in. So right now if we go to File, Build Settings, we'll see that we already have a scene in the build.
If you don't just click Add open scene and you'll see That index is zero. So that's the index for our scene. So we just remember that it's zero. If we go back to the code, we can just, when we press the restart button, we can just simply type scene manager, dot load scene. Zero, done. And just a note here loads, whatever scene is at index, zero in Build Settings.
So let's go back over to unity and let's, let's get this functionality working. So let's go to our heart first. We've got to initialize show add. Yep, that's all good. Let's go to our restart button. Let's add an onClick.
Event. That's dragon esteem manager. Go to App initialize, and we want to restart the game. Cool. Let's press play. Correct menu pops up.
Aurora Okay, and we've got an error, the error, let's look. So if we go over to the console, see unassigned reference exception, the variable c manager or player is not assigned. Okay, so let's go over to our player. We haven't assigned as the manager, it says none down here. So let's make sure Remember to drag that over. Let's try again press play.
The quick menu pops up, press play. Bam, okay. Now we can press this button. It waits for a second. Awesome. I'm gonna press the button again, because we've obviously got unlimited lives at this stage.
And it works just how would expect it to work and if we die, we can press the restart button. It reloads the game. Awesome. So that is working. Just how we would expect it to work. Fantastic.
See you in the next episode.