The main menu tutorial to RULE THEM ALL! :D See what I did there? 🔥UNITY SAVINGS: bit.ly/UnitySalesHub 🔥SpeedTutor Unity Store: bit.ly/STUnityStorePuzzlePacks 🔥HUMBLE SAVINGS: bit.ly/HumbleBundleDeals
you'll have to watch like 20-50 or more videos to find all that stuff, now it's on one video. that's a very helpful tutorial mate, kinda every element that a menu has. ❤️
There is so much in this tutorial that I have learned that not only applies to the main menu I was initially trying to create, but also my game as whole. I spent the last week going over every concept bit by bit and figuring out how I could apply this to other areas I'm trying to create and to better organize my project. Something as simple as the apply button confirmation box taught me how I could activate and deactivate objects from a script, and that's just one example. I've only picked up unity in the last couple months so I have a limited perspective, but I would argue this is the best tutorial for learning how unity works as a whole, as I've gleaned more from this than the dozens of other videos I've been watching. Thank you SO much for creating this tutorial, you have helped me on a level I was not expecting to find.
Hey there! I'm really glad you enjoyed the tutorial and learning from it. I struggled with this massively myself. You seem pretty forward thinking, just remember there is always a million ways to do something within Unity and programming - My example is merely a suggestion to get you started. You wouldn't believe how long it took me to put this menu together and then create the tutorial to go along side it. Best of luck with all your projects and learning! I hope to see you around again! :D
@SpeedTutor I can only imagine how long it took you to put this together, It's taken me over a week just to watch it and finish the menu lol I've actually already modified the load game button slightly to take you directly to an error screen saying no data found if it can't find any game data, rather than needing to click through two menus. Did this by adding two SerializedField game objects to the menu controller and set them to activate based on the if statement you used for the original Load button. A small change, but one I think improves the user experience. I'm hoping to use this concept later for conditional options in game for things like shops or possible dialogue selections, but I'll cross that bridge when I come to it. For now I'm just happy to have my menu done and to have learned as much as I have for the process. Thanks again for the tutorial, really appreciate the time you've put into it.
Would really love to see an implementation of a menu using the new input system. Having menu system for keyboard/mouse (no point and click) or game pad would be extremely helpful. I’ve found next to nothing about implementing this.
I tried to look into the new input system myself but it's like hell on earth, lots of people have different implementations, the Unity official resources have very limited information. I highly recommend using some pre-existing input systems which are far more refined, like Rewired. I have a tutorial on it and it can do everything you want and the referencing to script is much easier too. It's very well documented! :) Best of luck all the same.
if your resolutions are duplicating when you build the game, replace resolutions = Screen.resolutions with resolutions = Screen.resolutions.Select(resolution => new Resolution { width = resolution.width, height = resolution.height }).Distinct().ToArray(); make sure you have using System.Linq at the top.
@@SpeedTutor Some mechanics, puzzles sketchs, spells and some UI stuff. If you're interested, I would be glad if you could look for my name without the 01 + gamedev on tw
@@SpeedTutor Some mechanics, puzzles sketchs, spells and some UI stuff. Now working on the main menu, specially on the audio and video settings and then I'm going to implement save and load. I just followed you on X, you can look the progress better that way if you are interested.
Thankyou for actually explaining tNice tutorialngs. Other videos that I watched started talking about how to make soft and didn't ntion anytNice tutorialng
Lots of great stuff in here, I'm watching at work so I can't give it my full attention right now, but if I see NOTHING else in this video the ability to toggle between two dialog boxes using the GameObject SetActive function alone is worth the 1 1/2 hour video lol. I've been doing that through script, passing in references to each of the dialogs, then attaching the script to a UI element to expose the function I wrote. Then assigning that to the Click() function. Yeah , it does the exact same thing but this little trick saves a lot of time, and is much less of a pain in the ass. Can't wait to watch this when I have time to pay attention. Great video so far
This is a fairly short video considering what you COULD do with a menu, as you could incorporate audio mixers, key rebinding, post processing. The thing is, menu's take a hell of a lot of time to put together. I tried to make a comprehensive start which teaches you things you need to know to expand it all, to your liking! :)
I'm developing a psy terror walking sim inspired by Gone Home but with some terror spicy features like silent hill. We'll see what comes out of that 😅. It's 100% personal, nothing to do with steam or pointed into the market, just to learn and have fun coding. Anyways, all of your tuts are incredibly helpful, can't imagine how much hours you spend in total between creating your games and your content 😬. So much respect to you!
Just finished, awesome tutorial, thanks for making and posting it, was almost perfection. You have a great voice, great flow, great detail. Only thing that would have made it perfect. When following along and trying type at the same time, sometimes the moment you finish a block of code or doing something, you jump to a new point on the screen before one can hit pause to finish typing. Should have a pause, or comment, "so now that's done", so people have time to hit pause and finish typing. Not so bad on a 10min video when you can scroll back a couple of seconds. But on a big one skipping back a few seconds is a pain. This applies to pretty much all tutorials. Maybe everyone who makes tutorials has the entire Unity documentation memorized front to back, know everything about everything and never have to reference anything. I think it would be nice and helpful to see some incorporation of looking up the API, the thought process of how to find the code you need, when you can't remember syntax, or when you are trying to do something for the first time. Remembering that people are watching cause they don't know what they are doing. Thanks again for your awesome contribution, this menu tutorial does rule them all.
I really appreciate you taking the time to write this up for me, thanks for being very constructive! I'm glad you enjoyed it for the most part. If I could go back I would change a few things because there was an issue in one part of the video specifically. The problem was I'd literally spent hours and hours recording, putting this together and couldn't easily go back and make the change because it would have required me to remake a large part of it. It just wasn't feasible. I will look at improving, as we all do for all future content. Thanks for being awesome my friend! Best of luck with your development.
I folllowed it and it worked thanks. How do i then implement loading / saving. Obviously on here theres the new game and load game button, but in game if i wanted to pause and save the game, how would i then be able to load the game using what ive got
That's a much more long winded concept because it's depend on your game but you want to save the things that change. Get yourself a save system from the store and decide if it's just the scene or if it's specific parts of it. Save player position, inventory, events, actions. Then you reload those states. :)
I have a problem I did the first scripting part of the video all right but it keeps error coding cs1002 (which means missing semicolon) on lines 26 and 13 where they don't need to be and cant be what do I do? and line 13 don't even have anything in it
I am always going back and forth between setting up my onClick listeners in code or the editor. Is this just personal preference or is one better than the other?
That depends which one you like the most, I find it easier to set them up in the editor because they're always available. Rather than only set in code but it does depends on the use case. As sometimes I set the listeners in code if I don't want to explicitly specify before hand or it will change depending on a circumstance.
@@SpeedTutor thanks for the reply! I tend to prefer setting them up in the code so I always know exactly what each script does and where to look in case of issues. Also makes it easier to expand upon them in my opinion.
I love this tutorial but I want to ask u something, how do making the setting menu on the different scenes that sync to each other? I'm confused about it.
You do it in the same way, you save the settings like we do in this video. Then when you load the scene, just like loading on the start of the game. On the start of your new scene, load all the settings you've already saved before :)
🔥🔥🔥🔥🔥🔥🔥🔥Man this is al what is needed thxx a TON.......Just a question!!!....... In which part across the globe this game dev stream has the best scope plese tell me I am deeply lost ......I actually want to see myself as a game developer pleaseee ❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥❤🔥
if I load a song or a group of sounds in this menu for testing how the slider is working? what should I do? I meant, your tutorial is great, however I found the best way to test it is loading a sound called "Audio".
@@SpeedTutor I need to change the music volume while moving the slider... for example I am using a gameobject which is playing a music in the MenuController scene... when I enter to the Music settting there is an slider, well before apply , reset or back , the music must volume up or volume down...thx.
@@SpeedTutoradded questions sir, This is the main menu you made, I want to add selection characters, should I still create a new scene for the selection character or combine it, or should I just add C#sricpt?
2 errors, "Assets\Scripts\MenuController.cs(23,39): error CS0117: 'PlayerPrefs' does not contain a definition for 'Getstring'" and "Assets\Scripts\MenuController.cs(35,21): error CS0117: 'Application' does not contain a definition for 'quit'". any help?
You can take a look at my post processing tutorials, I show you how to change those on a dropdown. You can use this in the same way, due to it not having to be dynamic! :)
@@SpeedTutor I converted a project from the old input to the new system and now get errors. Had to convert the Event System to the new system, so no Mouse Click Events using the old system worked after that point. That's about all I can tell you. I put that project on hold until I can find a solid tutorial on how to make it work.
first line of code for buttons: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement; public class MenuController : MonoBehaviour { [Header("Levels To Load")] public string _newGameLevel; private string levelToLoad; [SereializedField] private GameObject noSaveGameDialog = null; public void NewGameDialogYes() { SceneManager.LoadScene(_newGameLevel); } public void LoadGameDialogYes() { if(PlayerPrefs.HasKey("SavedLevel")) { levelToLoad = PlayerPrefs.GetString("Savedlevel") SceneManager.LoadScene(levelToLoad); } else { noSaveGameDialog.SetActive(true); } } public void ExitButton() { Application.Quit(); } }
Thanks for this! Massively helpful and an easy guide. 1:05:08 Those following along, be careful here. He adds the SetResolution(int resolutionIndex) method before setting resolutionDropdown.AddOptions(options); resolutionDropdown.value = currentResolutionIndex; resolutionDropdown.RefreshShownValue(); Then, when he rejoins the from the cut in the video, the above three lines are missing but the SetResolution method is there. I thought those lines weren't needed anymore, so I deleted them. The cool thing is, after spending a while scratching my head, I figured it out for myself thanks to the teacher's ability to prepare my brain! Great!
Yes, sorry about that. When you're structuring a video as big as this and one minor error comes along. You have to use the magic of editing to work around, so sorry for any confusion but I'm glad you worked it all out! Fantastic stuff! :D
@@dutchiewonderz6553 You just leave them in. He created the SetResolution function first and then add those three lines to Start(), but he has that backwards in the video so it seems like the three lines just disappear.
As someone who has been through their fair share of tutorials, I heavily applaud this one. I am beginner ( somewhat) and this is so helpful and informative at a good pace. I usually have to redo a tutorial several times before things run right but this one i was one and done. I cant praise this enough~thank you