Create LEVEL MENU in Unity: UI Design & Level Locking/Unlocking System!
Discover the secrets of creating a stunning Level Menu in Unity with this easy-to-follow tutorial! Boost your Unity skills by learning how to design a beautiful User Interface (UI) for your level selection, and implement an intuitive Level Locking & Unlocking System. This video is perfect for Unity developers eager to improve their games' menus and user experience. Let's dive in! 👇
🌟 Video Highlights 🌟
Create an eye-catching Level Menu UI in Unity 🎨
Design a simple yet effective level selection screen 🖱
Implement a level locking/unlocking system to keep players engaged 🔒
Tips and tricks to enhance your Unity game's overall look and feel 🕹
Don't forget to Like, Comment, and Subscribe for more Unity tutorials, tips, and tricks!💡
Enjoy the video ☕
#UnityTutorial #LevelMenu #GameDevelopment
Пікірлер: 177
I try to implement it to unity visual scripting and it works perfectly! thank you so much
Easiest I've Ever Seen Thanks❤
Thank you so much for the video. It was a big help for me😁
@RehopeGames
7 ай бұрын
I'm so glad! 😊
Bro is underrated, you are so good bro, the next Brackeys!
Great tutorial,any thanks for sharing this! 😊
Wow wow❤. Thank you so much❤
great tutorial! Thank you💗
@RehopeGames
6 ай бұрын
Thank you so much ❤🙏
Amazing, thank you so much!
@nomisnibor
4 ай бұрын
I am facing some issue with a restart button. Like the advices you gave to one of this comment. If you could make a short video about it. It would be fantastic. 😋
Oh my gosh, FINALLY a nice and simple way to do level select/unlock. I've looked through videos over a long time but none of them would work fully or be too complex to implement with my project. I'm like " I should be able to just increment an integer to unlock the next level" but couldn't figure it out myself. Absolute god-send of a video
@RehopeGames
Жыл бұрын
I'm glad the video helped you 😊 Thanks for nice feedback 🙏
Thank you so mutch
tu es le KING. 🤩🤩🤩🤩
thank you for this awesome tutorial! it helped me so much!
@RehopeGames
10 ай бұрын
I'm glad it helped you , Thanks for your nice feedback 😊
@seffafadam287
3 ай бұрын
aga ikinizde türksünüz niye ingilizce konuşuyonuz
@yigit6347
3 ай бұрын
@@seffafadam287 ben iyi yorum olsun da öne çıksın kanalı diye yazdım işime de yaramıştı ödevimde
Abi eline sağlık video çok işime yaradı
Thank you for a great video
@RehopeGames
Жыл бұрын
I glad to hear that , thank you so much bro 😊
thanks bro you help a lot
@RehopeGames
Жыл бұрын
Thank you so much bro for your nice feedback 😊
Thanks Brother You Are The claimant of 100k sub
@RehopeGames
Жыл бұрын
Thank you so much bro 😊
thank you so much this is a helpfull
@RehopeGames
10 ай бұрын
I'm glad hear that. Thanks 😊
Even though I'm from Russia, but I'm watching you. You're the best!
@RehopeGames
Жыл бұрын
Thank you very much for your motivational feedback🙏 I wish you success in your project.😊
Thank you so much for the video. Can you also make a video on setting up a level map with theme changing and all, where a player or a trail will follow when we reach to next level as it can be seen in many games? Thank you!
@RehopeGames
9 ай бұрын
I've noted your request . Thanks for your feedback 😊🙏
thx
Thank you Rehope Games.
Thank you
@RehopeGames
Жыл бұрын
Thanks 😊
Hello there! First of all, awesome video. This tutorial helped a lot and made some things really clear. However I may have an easy addition to your level selector menu. Instead of making a separate UI sprite image for each number you could only use the background as image and use the text within the button. The text will be displayed on top of the image making it the same and for my opinion a little bit easier to add a new button or edit the contents. You can even add a custom font to your game that you can use for your buttons. So I am not sure if you did it on purpose to use a separate image for every button but I think this will help a bit to reduce some size of the game and reuse your sprites. This is just a tip/add-on to your tutorial, not meaning any harm with it :) I am glad that I came across your video tho. It really helped me a lot, keep up the great work!
@RehopeGames
11 ай бұрын
Hi 🖐 - I agree with your opinion. Using a single background is ideal for both practicality and size optimization. - I created one button in Adobe Illustrator and gave them different numbers, then export. - But in real game it makes sense to do as you say (if all buttons will be in the same design) Thank you so much for your nice comment 🙏😊
nice video !
@RehopeGames
9 ай бұрын
Thanks! 🙏😊
sir you explain to simple way
Your videos in recent times do helped me a lot But The one area that haven't helped is the part where the unlocked levels been evaluated i got an NullReference Exception : Object reference not set to an instqnce of an object 😢
Hi, I was wondering how would I be able to implement this if instead it was like a button what they had to buy to then unlock a higher level ?
thanks
@RehopeGames
8 ай бұрын
Thanks 🙏
Anlatımın için çok teşekkürler.Benim bir sorum olacaktı.Kilidi açılan bölümleri tekrar nasıl kitleyebilirim
Hey I have a problem unlocking further levels, I watched your video and followed your every step, no errors are displayed to me, agdy I complete level 1 or 2 etc. the only level I can play is this further level 1 does not unlock at all. Please Respond.
Thank you so much for this video, it helped me a lot in my internship project! I have a question though, how do I reset the game to lock all levels again?
@RehopeGames
10 ай бұрын
Hi, public void ResetGame() { PlayerPrefs.DeleteAll(); } Connect this method any button as click event. And thanks for your nice feedback :)
@salmadiaaelabsi
10 ай бұрын
Thank you loads, you are awesome!! @@RehopeGames
@RehopeGames
10 ай бұрын
@@salmadiaaelabsi You're welcome. Thank you very much for your courtesy.😊
I have a request for you. I'd like you to add the ability to close the menu with the B button to close the menu and the LB & RB triggers for the tab system with a gamepad.
@RehopeGames
Жыл бұрын
Hello , you can do it using New Input System
nice buddy
@RehopeGames
Жыл бұрын
Thanks ✌
Can you make Pause Menu and pause game system, that's would be great!
@RehopeGames
Жыл бұрын
Ok , The next video will be about Pause Menu/System 👍 See you in the next video 😊
hi i appreciated the video, it helps so much me on my project. But how do you reset the buttons? I mean how will the buttons be locked again? when you stop playing it? i hope i can get an answers, thank you so much sir.
@RehopeGames
8 ай бұрын
Hello, You can Delete the PlayerPrefs Data ( Contain Level Progress) to Reset the game. Thanks 🙏
Hi nice Tutorial but in the LevelScript i have the error Assets\LevelMenu.cs(8,12): error CS0246: The type or namespace name 'Button' could not be found (are you missing a using directive or an assembly reference?)
@RehopeGames
11 ай бұрын
Did you drag and drop the level buttons to the Button slots (Button[] array variable) on Unity ?
Çok teşekkürler arkadaşım projemde bana yardımcı oldu, farklı tıklama etkinlikleri yapmanızı ve bunları seviyelerine eklemenizi öneririm
@RehopeGames
7 ай бұрын
İşine yaramasına sevindim, güzel geri bildirimin için teşekkürler kardeşim parmaklarına sağlık 😊
@jesusmagas7096
7 ай бұрын
@@RehopeGames evet çünkü oyun projesi için bir video yapmamız gerekiyor
hello, hopefully you can answer my question. If i want to change the condition of the coding (when the level is complete) from box collider to just a button? Is it possible?
@RehopeGames
7 ай бұрын
Hello, Of course it's possible bro 😉
I was Struggling to get this to work at first, then I looked at my console and noticed "the submit button is not setup" I changed it from "Submit" to Fire1 and it worked for me after that
@RehopeGames
8 ай бұрын
Nice 👍
Thank you for your easy to understand tutorial!!! It really helped me a lot. ( * u * )
good
@RehopeGames
Жыл бұрын
Thanks 😊
Hi, great tutorial! I do everything step by step and it works until unlock levels, then it just stays the same: in the level select menu, I can click on each one. I checked the scripts, canvas etc but I don't see any error anywhere. Does anyone have an idea what could be wrong?
@RehopeGames
Жыл бұрын
Were all the levels unlocked when you first made them, or are they all unlocked after you complete the levels?
@aleksandraaleksandra7934
Жыл бұрын
@@RehopeGames they are unlocked all the time 😔 before and after I play the game
@bobbyhobs8669
Жыл бұрын
I am also experiencing this issue. Triple checked the scripts and everything in editor and can’t find where the break is…
hello! thankyou for this video. i would like to ask something. because my levels dont have an "end" to them, I cant use your exact method. i want levels to unlock when the previous one reaches a certain score. for example, level 2 only unlocks when level 1 highscore is 100. and level 3 unlocks when level 2 highscore is 100. how would i do this?
@RehopeGames
8 ай бұрын
Hello! Yes, you can do this with a simple algorithm. First, you set the required high score for each level. Then, each time the player's score changes, you check whether they have surpassed the required high score for the current level, using a conditional statement. If they have exceeded the required high score, you call the necessary function to unlock the next level.
@ola8189
8 ай бұрын
@@RehopeGames thank you so much! would it be possible if you could give me some example simple code I could use to start off? Sorry, I am quite new to coding haha
I thought that this whould be harder but it's suprisingly easy... Thanks!! But there is one problem. If i want to test my game wich will have a lot of levels, is there a way to clear all of the data from unlocking levels?
@RehopeGames
8 ай бұрын
Yes of course, İf you will keep the progress data in local ( client side ) you can store the data as json file. (don't forget to encrypt the json file ) Create Default Player Data and change the Player Data when you wanna reset the game. This topic is actually detally, maybe I can share a video about that.
@immersivearvr7148
8 ай бұрын
the Next Level, complete Unity reg
@CodenTheSynth
8 ай бұрын
@@RehopeGames just started doing the tutorial, after finishing i noticed that progressing does not work! ive tried removing some non-level scenes but it still doesnt work :(
Hi, thanks for video, can you help me with one question. I want to make this menu for 2.5D and 3D game, but i can't understand from video, if i add finish point to a box collider in 2.5D game, will it work or not ? if not, can you please help how to do that, when in 2.5D game player enter collider, start next level ? As i understand save will work with 2.5D without any problem. is this true code for that ? using UnityEngine; using UnityEngine.SceneManagement; public class FinishPoint : MonoBehaviour { private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { UnlockNewLevel(); SceneController.instance.NextLevel(); } } void UnlockNewLevel() { if (SceneManager.GetActiveScene().buildIndex >= PlayerPrefs.GetInt("ReachedIndex")) { PlayerPrefs.SetInt("ReachedIndex", SceneManager.GetActiveScene().buildIndex + 1); PlayerPrefs.SetInt("UnlockedLevel", PlayerPrefs.GetInt("UnlockedLevel") + 1); // Fixed the line PlayerPrefs.Save(); } } }
After building my project and doesnt work anymore i matched yours me same pls help i contacted unity techonologies but they said to say to the owner of scripts
please provide asset links too
Hello i have a problem when i press the level 1 button the unity says level 11 not in build in and when i press level 2 button it says 12 what can i do?
@goldenapple801
4 ай бұрын
Look in the script, you have a "1" somewhere
Hello, When I try to use the buttons multiple times in one play test i sometimes get an error saying Invalid scene name (empty string) and invalid build index -1. The code works but when it gives me that error the correct scene doesn't load and either reloads the current scene or loads a random scene. How can I fix this?
@RehopeGames
8 ай бұрын
Hello , Did you add all scenes to the Build Settings panel? Check the scene name (You called as Parameter)
@immersivearvr7148
8 ай бұрын
@@RehopeGames , Unity Unite... Unity code.
as you can see
@RehopeGames
7 ай бұрын
😅
i didnt add buttonstoarray
"The name 'SceneController' does not exist in the current context" How do I fix this?
@RehopeGames
Жыл бұрын
You should create a SceneController script. I've created it in this video kzread.info/dash/bejne/d2ZprLmflaasgKQ.html
hey Rehope i have a problem when i play the game and open the next level the the level does not unlock in the level selector how can i fix this plz
@RehopeGames
10 ай бұрын
Hi , did you follow me step by step. Can you show me your script ?
@tronal9113
10 ай бұрын
using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class levelMenu : MonoBehaviour { public Button[] buttons; public GameObject levelButtons; private void Awake() { ButtonsToArray(); int unLockedlevel = PlayerPrefs.GetInt("UnLockedLevel", 1); for (int i = 0; i { buttons[i].interactable = false; } for (int i = 0;i { buttons[i].interactable = true; } } public void OpenLevel(int levelId) { string levelName = "Level " + levelId; SceneManager.LoadScene(levelName); } void ButtonsToArray() { int childCount = levelButtons.transform.childCount; buttons = new Button[childCount]; for (int i = 0; i { buttons[i] = levelButtons.transform.GetChild(i).gameObject.GetComponent(); } } } ................................................................................. using UnityEngine; using UnityEngine.SceneManagement; public class FinishPoint : MonoBehaviour { public GameObject levelCompleted; private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Player")) { UnLockNewLevel(); SceneController.instance.NextLevel(); levelCompleted.SetActive(true); } } void UnLockNewLevel() { if (SceneManager.GetActiveScene().buildIndex >= PlayerPrefs.GetInt("ReachedIndex")) { PlayerPrefs.SetInt("ReachedIndex", SceneManager.GetActiveScene().buildIndex + 1); PlayerPrefs.SetInt("UnLockedLevel", PlayerPrefs.GetInt("UnLockedLevel", 1) + 1); PlayerPrefs.Save(); } } }@@RehopeGames
@tronal9113
10 ай бұрын
i ifollwed you step by step but check my code if there is something wrong and thank you for your help @@RehopeGames
@tronal9113
10 ай бұрын
Hey did u check my code @@RehopeGames
@tronal9113
10 ай бұрын
hey can you check my code plz@@RehopeGames
Hi um when I press a button a different button near it gets pressed instead, I don't know if buttons have Rigibodys and there covering each other I don't know but I desperately need anyones help so please if you know what's causing this just leave a comment... thank you
@RehopeGames
8 ай бұрын
Hello, I hope you solved the problem. If not , Check the Rect size of the buttons. Thanks 🙏
can you please add player skin selection to the game please?
@RehopeGames
9 ай бұрын
Nice idea 👌 I've noted your request . Thanks 🙏😊
i alr used unity.ui namespace, why cant use interactable on button? Assets\Script\UI\LevelScene.cs(23,27): error CS1061: 'Button' does not contain a definition for 'interactable' and no accessible extension method 'interactable' accepting a first argument of type 'Button' could be found (are you missing a using directive or an assembly reference?)
@zhafranalvinsyah4538
8 ай бұрын
and i also cant drag n drop or references the object level from levels panel on inspector
@RehopeGames
8 ай бұрын
Did you follow me step by step?
@goldenapple801
4 ай бұрын
I have the same issue. @@RehopeGames This is my code using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.SceneManagement; using UnityEngine.UI; public class LevelMenu : MonoBehaviour { public Button[] buttons; public void Awake() { int unlockedLevel = PlayerPrefs.GetInt("Unlockedlevel", 1); for (int i = 0; i { buttons[i].enabled = false; } for (int i = 0; i { buttons[i].enabled = true; } } public void OpenLevel(int levelId) { string levelName = "Level " + levelId; SceneManager.LoadScene(levelName); } }
guys i can't use scenecotroller and what can i do
@RehopeGames
10 ай бұрын
this video for you bro 😀 kzread.info/dash/bejne/d2ZprLmflaasgKQ.html
Hi, it only lets me unlock level 2 when ive completed level 2 not level 1. How do i fix it?
@RehopeGames
8 ай бұрын
Hi, I hope you solved it. If not can you show me your script
@TheDumbDonkey
7 ай бұрын
had the same issue. Dont use PlayerPrefs.GetInt("UnlockedLevel1", 1); instead use PlayerPrefs.GetInt("Unlockedlevel", 1); and dont put level 1 as part of the buttons in the levels panel
Hello, sir, i have a problem, after i finish second level, he don t unlock third level, even if it load and finish ...😢
@RehopeGames
Жыл бұрын
Check the your script
@Rccustomoffroad
Жыл бұрын
I will check, thanx
on me it says index was outof bounds of the array when i click play
@RehopeGames
11 ай бұрын
Did you follow me step by step ?
@syfenw6586
11 ай бұрын
@@RehopeGamesi didt see the other videos only this, and i followed this video step by step
I did everything as you did, but levels 1-5 are unlocked (6:53). I have 8 levels and only the last three are locked. What am I doing wrong?
@RehopeGames
10 ай бұрын
Hi , can you show me your script?
@aleksandraaleksandra7934
9 ай бұрын
@@RehopeGames using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class LevelMenu : MonoBehaviour { public Button[] buttons; private void Awake() { int unlockedLevel = PlayerPrefs.GetInt("UnlockedLevel",1); for (int i =0; i { buttons[i].interactable = false; } for (int i =0; i { buttons[i].interactable = true; } } public void OpenLevel(int levelId) { string levelName = "Level" + levelId; SceneManager.LoadScene(levelName); } }
Thank you again but can you please give me all the assets? I you have them?
@RehopeGames
Жыл бұрын
Hello, I'm gonna publish all project to itch.io in this week and I will share download link
@farahiman3739
8 ай бұрын
@@RehopeGamesHello can i have the download link 🥹
Does this work on 3D?
@RehopeGames
Жыл бұрын
Yes of course 😉
Please can you do a tutorial on unity ads pleasessssssss
@RehopeGames
7 ай бұрын
I've noted your request thanks 🙏
i keep getting an error code that says its not in build settings but it is. why is it doing this?
@RehopeGames
8 ай бұрын
You probably forgot to add the game scenes to the build settings panel.
@angrypuppy
8 ай бұрын
I got it working thanks tho
@RehopeGames
8 ай бұрын
@@angrypuppy 👍
Thank You worked well. the only thing i changed was instead of making two for loops I did this int unlocklevel = PlayerPrefs.GetInt("unlockedlevel", 1); for(int i = 0; i { if(i + 1 > unlocklevel) { buttons[i].interactable = false; } I would get the Index error but this seems to work, but overall good video
@RehopeGames
10 ай бұрын
👍
How do I lock every levels again
@taolatu8506
23 күн бұрын
void Update() { if(Input.GetKeyDown(KeyCode.M)) { PlayerPrefs.DeleteAll(); Debug.Log("PlayerPrefs Deleted"); } }
How do I reset the levels unlocked?
@RehopeGames
Жыл бұрын
Hello , if you run this code All level progress will reset. PlayerPrefs.DeleteAll();
@noahstella4289
Жыл бұрын
@@RehopeGames Thanks
@maciek1831
6 ай бұрын
@@RehopeGames Hi, i made a button "delete progress", added the DeleteProgress() function to the script with PlayerPrefs.DeleteAll(); but it does not lock the levels again when i click the button, any idea why and how to fix that? Also, big thanks for this video, great help!
@maciek1831
6 ай бұрын
ok I added PlayerPrefs.Save() to the Awake and now the button resets the progress but only when I play again, the buttons are still unlocked when i cycle through scenes and main menu
For me its not unlocking the levels
Assests?
@RehopeGames
9 ай бұрын
Coming soon ...
We died😂
@RehopeGames
3 ай бұрын
😂😂
@AdnanZamanGames1234
3 ай бұрын
@@RehopeGames OMG
Hii bro can you Send me link of your Menu UI sprites😭😭😭
@RehopeGames
6 ай бұрын
Hi bro , I will share the all project soon .
@opmistakarmy
6 ай бұрын
@@RehopeGames bro It's urgent I build my game without menu plz provide me sprties now
What is this Project name??
@RehopeGames
9 ай бұрын
I gave the project the name 2D Platformer
how do i lock levels if i exit the game?
@RehopeGames
9 ай бұрын
You wanna reset the game progress when exit the game ?
@youtubemusic415
9 ай бұрын
yes@@RehopeGames
@youtubemusic415
9 ай бұрын
my level selection is not working now after i did no open the project in a week @@RehopeGames
@youtubemusic415
9 ай бұрын
how could i reset the unlocked level? @@RehopeGames
@youtubemusic415
9 ай бұрын
@@RehopeGames please help me my other levels doesnt unlock even i reach the finish point i check the codes and are all the same but its still doesnt work please help this is the code in my finishpoint using UnityEngine; using UnityEngine.SceneManagement; public class Finish : MonoBehaviour { private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player") { UnlockNewLevel(); GameManager.MyInstance.Finish(); } } private void OnTriggerExit2D(Collider2D collision) { if (collision.tag == "Player") { UIManager1.MyInstance.HideVictoryCondition(); } } void UnlockNewLevel() { if(SceneManager.GetActiveScene().buildIndex >= PlayerPrefs.GetInt("ReachedIndex")) { PlayerPrefs.SetInt("ReachedIndex", SceneManager.GetActiveScene().buildIndex + 1); PlayerPrefs.SetInt("UnlockedLevel", PlayerPrefs.GetInt("UnlockedLevel", 1) + 1); PlayerPrefs.Save(); } } } this is the code in my Level Menu using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class LevelMenu : MonoBehaviour { public Button[] buttons; public GameObject back; private void Awake() { int unlockedlevel = PlayerPrefs.GetInt("Unlockedlevel", 1); for(int i = 0; i { buttons[i].interactable = false; } for(int i = 0; i { buttons[i].interactable = true; } } public void Earth() { SceneManager.LoadScene("EarthScene"); } public void Fire() { SceneManager.LoadScene("FireScene"); } public void Water() { SceneManager.LoadScene("WaterScene"); } public void Air() { SceneManager.LoadScene("EarthScene"); } public void Backbutton() { back.SetActive(false); } }
5:59
@RehopeGames
Жыл бұрын
⁉
Hello Thanks for the tutorial but can you send me the script please i am lazy to rewrite :D ty
@RehopeGames
11 ай бұрын
😂 Hi! I'm gonna share all project soon.
7:16
@RehopeGames
Жыл бұрын
⁉
IndexOutOfRangeException: Index was outside the bounds of the array. LevelMenu.Awake () (at Assets/script/script menu level/LevelMenu.cs:22) UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:398)
@RehopeGames
9 ай бұрын
🤦♂️
Hi i need some help with this, these errors popped up as soon as I finished the script for the finishpoint Assets\FinishPoint.cs(16,48): error CS0103: The name 'SceneManager' does not exist in the current context Assets\FinishPoint.cs(14,76): error CS0103: The name 'ReachedIndex' does not exist in the current context Assets\FinishPoint.cs(14,13): error CS0103: The name 'SceneManager' does not exist in the current context did I do something wrong?
@galaxyslayerinfinite8448
11 ай бұрын
also is there a way i could reset the levels with I link it to a "new game" button in the home screen?
@RehopeGames
10 ай бұрын
Did you create scene manager script ?
@RehopeGames
10 ай бұрын
Yes you can reset using PlayerPrefs.DeleteKey(string key)