SETTINGS MENU in Unity

Поделиться
HTML-код
  • Опубликовано: 3 июн 2024
  • Learn how to make an in-game options menu using Unity!
    ● Sign up for the Devdog Christmas Calender: bit.ly/DevdogGiveaway
    ● START MENU in Unity: • START MENU in Unity
    ● Ultimate Game UI: www.assetstore.unity3d.com/#!...
    ❤️ Donate: www.paypal.com/donate/?hosted...
    ····················································································
    ► Join Discord: / discord
    ♥ Subscribe: bit.ly/1kMekJV
    ● Website: brackeys.com/
    ● Facebook: / brackeys
    ● Twitter: / brackeystweet
    ········································­­·······································­·­····
    Edited by the lovely Sofibab.
    ········································­­·······································­·­····
    ► All content by Brackeys is 100% free. We believe that education should be available for everyone.
    ❤️ Donate: www.paypal.com/donate/?hosted...
    ········································­­·······································­·­····
    ♪ Baby Plays Electro Games
    teknoaxe.com/cgi-bin/link_code...

Комментарии • 1,6 тыс.

  • @tiggs_4429
    @tiggs_4429 3 года назад +657

    by the way guys, if you cannot drag in the resolution drop down, you probably have a text mesh pro dropdown one. To solve this you can do 'public TMPro.TMP_Dropdown resolutionDropdown;' instead of the 'public Dropdown resolutionDropdown'. I hope this helps on anyone who is stuck.

  • @GalanLefont
    @GalanLefont 3 года назад +358

    0:00 Intro
    1:13 Volume
    5:36 Graphics
    7:48 Full Screen
    9:05 Resolution

    • @gaboandres
      @gaboandres 3 года назад +3

      Thx man, now that they are not working as a youtuber anymore i dont feel guilty about not watching the whole vid lol

    • @cptray-steam
      @cptray-steam 2 года назад +2

      Someone get this man a cookie!

    • @btryx9378
      @btryx9378 2 года назад +2

      @Ninja Boy you're probably doing something wrong then.

  • @skho974
    @skho974 6 лет назад +587

    Dude every time i need to learn something, i go on youtube and every time, you make a video about what i needed at that moment, you kidda scary tho

    • @richkid6571
      @richkid6571 6 лет назад +1

      Lol yall crazy lol

    • @pitaya4151
      @pitaya4151 6 лет назад +5

      Elvishious the fbi man tells him

    • @Gitko01
      @Gitko01 5 лет назад

      Elvishious That’s pretty insane.

    • @NicoFye
      @NicoFye 4 года назад +5

      for everyone who's wondering, there is actually a tool that let's you know what people search the most :)

    • @ariarichards-
      @ariarichards- 4 года назад +1

      @@NicoFye Yeah it's called Google trends

  • @wifu-box266
    @wifu-box266 3 года назад +18

    Just wanted to let you know your tutorials are phenomenal!
    I really appreciate the way you add in Debug.Logs as you go so we can see it working as we go rather than just hoping it all works at the end of the tute.
    Stay awesome man!

  • @Kai-Shin
    @Kai-Shin 6 лет назад +459

    Small tip
    Select the audiosource you want to control volume > Output > None→Master(AudioMixer). :D

    • @Zinisco
      @Zinisco 6 лет назад +6

      Thank you!

    • @FabioKun
      @FabioKun 6 лет назад +3

      thx

    • @d1xt1r
      @d1xt1r 6 лет назад +3

      Thank you!

    • @kevinalbajrami9923
      @kevinalbajrami9923 6 лет назад +5

      make this top comment

    • @akulmehra7528
      @akulmehra7528 6 лет назад +18

      Hey man, I followed the tutorial step by step and even followed your comment. Still my slider seems to have no effect on the volume. Any suggestions?

  • @MrAvatin
    @MrAvatin 6 лет назад +44

    Probably one of the few youtubers who care about their subscribers and take their feedback!

  • @_hallowed_
    @_hallowed_ 2 года назад +173

    For the resolutions option, if anybody is seeing a lot of seemingly duplicate options (I was), it's because of refresh rates - you have 1920x1080@60hz and 1920x1080@144hz for example. What I did was add the refresh rate into the dropdown text options:
    string option = resolutions[i].width + " x " + resolutions[i].height + " @ " + resolutions[i].refreshRate + "hz";

    • @stentanner
      @stentanner 2 года назад +4

      Thank you!

    • @_hallowed_
      @_hallowed_ 2 года назад

      @WasNeverBrandon No idea, but there definitely is a way.

    • @Ice_ZOMBIES
      @Ice_ZOMBIES 2 года назад +7

      I literally just switched back from my Unity program to google "why do i have duplicate resolutions?" Just to see your comment conveniently right before I clicked away. Bless your soul, you beautiful bastard! Thank you!

    • @Nikolai_SE
      @Nikolai_SE 2 года назад

      Thank you bro!

    • @chiragmidha2878
      @chiragmidha2878 2 года назад

      this is exactly what I was looking for

  • @jaycesaerius
    @jaycesaerius 6 лет назад +52

    You are the best, Brackeys !

  • @Gredran
    @Gredran 3 года назад +4

    It's true what they all say, you are THE Unity guy.
    Sure I know others exist, but the sheer amount of topics you discuss, from 2d to 3d, to settings and multiplayer. Thanks so much!
    It's been long overdue for me, but FINALLY getting into Unity and C# :D

  • @DawnosaurDev
    @DawnosaurDev 4 года назад +235

    At 5:10 use
    audioMixer.SetFloat("Volume", Mathf.Log10(volume) * 20);
    instead since the audiomixer volume is not linear
    Edit: make sure the varibles match yours ie. same caps and spellings

    • @SkeeterMakesGames
      @SkeeterMakesGames 4 года назад +4

      Thanks dude. Solved a problem I was having.

    • @kishiosakai2649
      @kishiosakai2649 4 года назад +4

      Thank you!

    • @fuuuuuuuuuuuuuuuuuuuuuuuuu
      @fuuuuuuuuuuuuuuuuuuuuuuuuu 4 года назад +62

      Thank you. For this to work the Slider object must have Min and Max values of 0.0001 and 1 respectively.

    • @facyual9061
      @facyual9061 4 года назад +3

      @Zoom the second time its lower case

    • @facyual9061
      @facyual9061 4 года назад +4

      this only works if you change the "Volume" to "volume"
      it took me 10 minutes to figure out that the "Volume" wasn't supposed to be caps.

  • @horyzengm
    @horyzengm 3 года назад +156

    Brackeys: Its an amazing pack thats free on the asset store
    The asset store: That'll be $25 please

    • @infleo23
      @infleo23 3 года назад +4

      True, I dont know which asset to use...

    • @aminkafnaweez2595
      @aminkafnaweez2595 3 года назад +14

      @@infleo23 bro u can just draw the them urself its easy
      :)

    • @bugracayr137
      @bugracayr137 3 года назад

      @@aminkafnaweez2595 wait.. is it really easy???

    • @redgeoblaze3752
      @redgeoblaze3752 3 года назад +25

      @@aminkafnaweez2595
      you underestimate just how bad some of us are at art.
      Or more importantly, how long it takes us to figure out some digital art programs.

    • @Hietakissa
      @Hietakissa 3 года назад +9

      @@redgeoblaze3752 that is why all my menus consist of tmp text with a nice gradient and a dark semi-transparent panel underneath it. Good enough looking ui and it's really easy to make.

  • @Vaerch
    @Vaerch 6 лет назад +2

    This is what i love about Brackeys, The quality of their tutorials.

  • @jvcss
    @jvcss 6 лет назад +39

    YOU ARE BADASS MAN!! I REALLY LOVE YOU DUDE!

  • @patrickh4284
    @patrickh4284 5 лет назад +448

    At 14:30 there´s a mistake in the script. He compares resolution[i] with Screen.currentResolution but that´s wrong. CurrentResolution gives the Resolution of the monitor but we want to compare it with the Resolution of the window in case we change the scene. That´s why we have to compare resolution[i].width with Screen.width and resolution[i].height with Screen.height.

    • @yeetusselfdefeetus4566
      @yeetusselfdefeetus4566 5 лет назад +17

      Patrick H YOU HAVE SAVED ME THANK YOU VERY MUCH

    • @christossotirlis2247
      @christossotirlis2247 5 лет назад +12

      i love you. this video assisted me in creating my first project and this was a huge stuck. thank you

    • @rockbolton8173
      @rockbolton8173 5 лет назад +9

      Thanks a bunch man! i was wondering why my game kept resizing to full screen when I opened my settings lol

    • @budrys1356
      @budrys1356 5 лет назад +10

      Could you copy full script with resolution for me, becouse im having some trouble.

    • @poteito9721
      @poteito9721 5 лет назад

      love you my dude, you saved my life :D

  • @benjoe1993
    @benjoe1993 6 лет назад

    This tutorial is what the beginner gamedev community has been waiting for for ages now :D
    Thanks for creating this!

  • @Jasperkiller1
    @Jasperkiller1 6 лет назад +376

    We asked for it, we got it, we enjoy it. :D

    • @brianmo2611
      @brianmo2611 6 лет назад +1

      ...... This is hardly a settings menu, what about aspect ratio, AA, Different volume settings for like music/sfx/master volume, what about controler and keyboard binding, or what about SAVING the settings for the next time a player opens the game........

    • @esbenkran
      @esbenkran 6 лет назад +9

      - Aspect ratio is just a modified resolutions dialog with resolution shown in lower fractions.
      - The AA can be accessed through the post-processing stack, which I believe he has done a tutorial on already.
      - The different volume settings would be done by sending AudioSource sounds to specific mixers instead of master (SFX mixer, Music mixer) and then modifying them instead of the master as he did in this video.
      - The controller and keyboard bindings can be accessed and modified (with much more work) through the Input class etc.
      - Saving the settings is just using PlayerPrefs, which he has done a tutorial on already.

    • @brianmo2611
      @brianmo2611 6 лет назад

      Yes because telling someone what they are is totally the same thing as showing someone how to set them up........

    • @arey85
      @arey85 6 лет назад +1

      Watch Brackey's high score tutorial and you have your answer for both how to save custom prefs into a prefs and load it back. In his previous tutirials you can also find the answer how to detect inputs, keyress etc and change those settings. Then just combine all of them together and you can get a fully functional options menu :)

    • @somnia3423
      @somnia3423 6 лет назад

      brian ou have to learn a few things by you own...

  • @viktordjambov1437
    @viktordjambov1437 6 лет назад +8

    If it weren't for Brackeys, not only would I have maybe thought about giving up Game developing, thinking it would be too boring or difficult, or I would have kept doing it but never find so much joy in learning the basics. Thanks man!

  • @hplovecraftmacncheese
    @hplovecraftmacncheese Год назад +20

    If your slider is affecting the audio mixer values but not changing the sound volume of your audio, you have to drag the mixer into the slot of your audio clip on the inspector to affect the actual sound of each clip.

    • @conors026
      @conors026 Год назад +2

      I know this was 3 months ago but thank you so much

    • @BAGUETTEBOYyt
      @BAGUETTEBOYyt 10 месяцев назад

      thanks 👍

    • @polipoli23
      @polipoli23 9 месяцев назад

      thank you so much

  • @grimsladeleviathan3958
    @grimsladeleviathan3958 5 лет назад

    This video has been really really helpful! I tried to make an option menu, and some stuff didn't work, after watching this video, I found what I did wrong. Thanks, Brackeys!
    Love the christmas hat btw

  • @mayaG183
    @mayaG183 6 лет назад

    I just found this channel yesterday this is so helpful and amazing. I don't know how else to thank you as soon as I have a stable income I will become a patron supporter!!!

  • @creatingwithlove
    @creatingwithlove 3 года назад +3

    Love the tutorial. Wish you were still making them.

  • @81Mendel
    @81Mendel 5 лет назад +8

    @ 11:45 - 12:13 try this line instead:
    string option = resolutions[i].width + " x "+ resolutions[i].height +" @ " +resolutions[i].refreshRate + " Hz";
    This will populate the list nicely with refreshRate information intact
    edit: not sure yet how to apply the refresh rate as well.

  • @Shinobi31415926
    @Shinobi31415926 6 лет назад +1

    Loving these UI tutorials. Keep 'em coming!!!

  • @everton.colombo
    @everton.colombo 6 лет назад

    Dude, you don't even know how your tutorials have been helping me, thanks.

  • @user-pt6gu4rd6w
    @user-pt6gu4rd6w 5 лет назад +61

    Hi! Thanks for your video! I've got something you might find useful.
    Instead of this:
    if(resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height)
    You can use the Equals method:
    if(resolutions[i].Equals(Screen.currentResolution))
    It compares objects and returns true, if their fields are equal.
    Hope it might help someone to shorten their code!

    • @zacksima8333
      @zacksima8333 4 года назад

      Евгений Кучерявый I think == is an implicit .equals call so you can just directly use ==

    • @mr.fakeman4718
      @mr.fakeman4718 3 года назад +1

      == is slower than .Equals, his comment deserves more likes.

    • @awawa5594
      @awawa5594 3 года назад

      Do you still need the last 3 lines:
      m_ResolutionDropdown.AddOptions(m_Options);

      m_ResolutionDropdown.value = m_CurrentResolutionIndex;
      m_ResolutionDropdown.RefreshShownValue();

    • @AstraGamesStudios
      @AstraGamesStudios Год назад

      @@awawa5594 yes

  • @vandermunnik
    @vandermunnik 2 года назад +13

    If you want to set the default quality to high for instance you can do that within the dropdown component by setting 'value' to 2. I struggled with this a bit at first :P

  • @ben_insomnia
    @ben_insomnia Месяц назад

    My GOAT, 6 years later and all of this is still helpful

  • @MikeyyMonty
    @MikeyyMonty 6 лет назад

    I was just looking for this! Thank you yet again Brackeys!!!!!

  • @TNThead
    @TNThead 4 года назад +6

    For anyone with troubles in build where the options can get duplicated in the dropdown; this is in fact not a bug, it is due to the varying refresh rates available. Unity editor has a consistent 60Hz, but when an application is built, there can be multiple differing rates between the same resolution.
    A fix can be just adding the refresh rate to the option:
    string option = resolutions[i].width + " x " + resolutions[i].height + ", " + resolutions[i].refreshRate + "Hz";

    • @hepcecob
      @hepcecob 4 года назад

      Is there a way to do it without the refresh rates? I tried comparing the old vs new value, got the drop down list to be only unique refresh rates... but when I select one, I guess it takes it's index form the drop down and applies it to the available resolutions.

  • @dc37wwe2kmods
    @dc37wwe2kmods 4 года назад +12

    For everyone who gets the same resolution on the dropdown even if they already changed it:
    This happens when on window mode. The Screen.currentResolution will get the 'desktop resolution' instead of the game's current resolution.
    To fix this, simply change:
    ` if(_resolutions[i].width == Screen.currentResolution.width && _resolutions[i].height == Screen.currentResolution.height) `
    TO
    ` if(_resolutions[i].width == Screen.width && _resolutions[i].height == Screen.height) `
    If you didn't get it, change "Screen.currentResolution.width" to "Screen.width" (and also height) during the if statement on the for loop. This will get the game's current resolution.
    God Bless and Happy Coding! =)

    • @tophatsntales
      @tophatsntales Год назад +1

      Holy hell this solved all my problems.
      it would save everything but as soon as a scene loaded it changed the resolution

    • @dc37wwe2kmods
      @dc37wwe2kmods Год назад +1

      @@tophatsntales Happy to help!

    • @lazzzzz_exe
      @lazzzzz_exe Месяц назад

      what canvas settings did you have? mine doesnt scale properly and the resolution gets considerably lower if you pick anything but default

  • @JimGiant
    @JimGiant 6 лет назад

    Can't thank you enough for this! Didn't expect to learn anywhere near this much!

  • @EUBEEN123
    @EUBEEN123 4 года назад +1

    I'm always so happy when I finish writing the scripts and there are no errors

  • @DayMoniakkEdits
    @DayMoniakkEdits 6 лет назад +3

    You can also save all theses values in the PlayerProperties for load the settings each time you change or restart scenes

    • @Parona1337
      @Parona1337 6 лет назад

      How? It doesnt work for me

  • @skymartin9414
    @skymartin9414 2 года назад +29

    If you are using a TextMeshPro DropDown instead of the default Dropdown change:
    public DropDown resolutionDropdown;
    to
    public TMP_Dropdown resolutionDropdown;
    and make sure that you have
    using TMPpro; at the top of your script

    • @janil9357
      @janil9357 2 года назад +2

      wow.. thx a lot bro.. I was wondering what went wrong for a sec lol

    • @eltonyeo2811
      @eltonyeo2811 2 года назад +2

      Thx, help me a lot

    • @noisefond
      @noisefond 2 года назад +2

      legend

    • @savasozdemir3320
      @savasozdemir3320 2 года назад +2

      I came here looking for a brave soul that solved my problem without me asking, internet delivered once again... Thanks man!

    • @kostiantynvolnov9012
      @kostiantynvolnov9012 Год назад +1

      Thx, man, but 1 mistake using TMPro; without "p"

  • @maxencecrouzy2196
    @maxencecrouzy2196 4 года назад +2

    I almost never comment on videos but dude you just saved my programming project!

  • @timwit333
    @timwit333 6 лет назад

    DUUUDE, just arrived at the point in my personal project where I have to implement the settings menu! Best timing ever!

  • @wgregoryw21
    @wgregoryw21 2 года назад +4

    If you see the bar in the MainMixer go up and down but the volume doesn't change you have to add:
    public AudioMixerGroup mixerGroup; in your AudioManager script and then inside the foreach(Sound s in sounds) after the s.source = gameObject.AddComponent();
    you have to put s.source.outputAudioMixerGroup = mixerGroup; after that open the MainMixer icon in your assets and drag the "Master" inside the public mixerGroup in editor!

    • @owokamii
      @owokamii 10 месяцев назад +1

      tysm!

  • @anommahartha2357
    @anommahartha2357 5 лет назад +14

    remember to Increase volume on "Audio Mixer", and add Output -> Master to your "Audio source" component... :D

    • @rinodipaola761
      @rinodipaola761 3 года назад +1

      Thank you, you saved my life!! :D

    • @OBEYOTTERZ
      @OBEYOTTERZ 2 года назад

      THANK YOU SO MUUUUUUUUCHHHHHHHHHHHHHHHH

  • @hitlab
    @hitlab 4 года назад

    Great video! Exactly what I was looking for today. Keep up the awesome work man. Thank you.

  • @finalrenderanimationstudio
    @finalrenderanimationstudio 6 лет назад

    as always, your channel has been a big help to me and my projects!

  • @MostafaTElmansoury
    @MostafaTElmansoury 6 лет назад +22

    Please make a tutorial on how to map controller input.

    • @netbat
      @netbat 4 года назад +1

      it's in project settings > Input

  • @BottledWater
    @BottledWater 6 лет назад +45

    can you make a tutorial on how to save these settings when the game gets closed? would this also apply to other things in the game (lives, unlocked levels, etc.)

    • @SerhiiZhydel
      @SerhiiZhydel 5 лет назад +2

      so unity doesn't load these settings after restart? did you check it?

    • @Definitely_a_Fox
      @Definitely_a_Fox 5 лет назад +9

      He did a video on saving and loading values. Maybe you want to check that out.

    • @vda1_327
      @vda1_327 3 года назад +2

      yes i need that too

    • @Croccolucho
      @Croccolucho 3 года назад +1

      @@Definitely_a_Fox can you please give me the link?

    • @Definitely_a_Fox
      @Definitely_a_Fox 3 года назад

      @@Croccolucho Okay, a quick look through their video''s was all you needed to do.
      ruclips.net/video/XOjd_qU2Ido/видео.html

  • @likewut007
    @likewut007 5 лет назад

    if brackeys doesn't have a tutorial on it, it can't be done. this guys saved me so many headaches

  • @thepithief3700
    @thepithief3700 6 лет назад

    Great tutorial Brackeys!! Keep up the good work!

  • @a_soulspark
    @a_soulspark 6 лет назад +10

    I couldn't stop laughing at the start of the video!
    Nice look Brackeys :)

  • @kralpata
    @kralpata 2 года назад +8

    if anyone has errors in their script, try this:
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.Audio;
    using UnityEngine.UI;
    using TMPro;
    public class SettingsMenu : MonoBehaviour{
    public AudioMixer audioMixer;
    public TMP_Dropdown resolutionDropdown;
    Resolution[] resolutions;
    void Start ()
    {
    resolutions = Screen.resolutions;
    resolutionDropdown.ClearOptions();
    List options = new List();
    int currentResolutionIndex = 0;
    for (int i = 0; i < resolutions.Length; i++)
    {
    string option = resolutions[i].width + "x" + resolutions [i].height;
    options.Add(option);
    if (resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height)
    {
    currentResolutionIndex = i;
    }
    }
    resolutionDropdown.AddOptions(options);
    resolutionDropdown.value = currentResolutionIndex;
    resolutionDropdown.RefreshShownValue();
    }
    public void SetResolution (int resolutionIndex)
    {
    Resolution resolution = resolutions[resolutionIndex];
    Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen);
    }
    public void SetVolume(float volume)
    {
    audioMixer.SetFloat("volume", volume);
    }
    public void SetQuality (int qualityIndex)
    {
    QualitySettings.SetQualityLevel(qualityIndex);
    }
    public void SetFullscreen (bool isFullscreen)
    {
    Screen.fullScreen = isFullscreen;
    }
    }
    (the text mesh pro is only if you are using it)

    • @derangeddoffy
      @derangeddoffy Год назад

      Thank you so much, I wasn't able to do resolution dropdown.

    • @ichigo765
      @ichigo765 Год назад

      thanks, your a life saver. i dont know why mine wasnt working

    • @Frazcaideadlol__
      @Frazcaideadlol__ 9 месяцев назад

      We need more people like you.

  • @hyp3240
    @hyp3240 5 месяцев назад

    Amazing tutorial, helped me get through volume slider and graphics options, thank you

  • @StarLuson
    @StarLuson 3 года назад

    Everything works perfectly and so simple! Thank you so much, with this video today i built the game for the first time.

  • @dewybeat2409
    @dewybeat2409 3 года назад +6

    To people like me who's having trouble with the volume here's something that works:
    public AudioMixer audioMixer;
    [SerializeField] AudioSource audioSrc;
    public float Nvolume = 1f;
    void Update()
    {
    audioSrc.volume = Nvolume;
    }
    public void SetVolume(float volume)
    {
    Nvolume = volume;
    audioMixer.SetFloat("volume", Nvolume);
    }

  • @peterchow172
    @peterchow172 4 года назад +5

    For those whose volume doesn't change after using the slider, add this to your code:
    AudioMixer audioMixer = Resources.Load("MainMixer");
    AudioMixerGroup[] audioMixGroup = audioMixer.FindMatchingGroups("Master");
    audioSource.outputAudioMixerGroup = audioMixGroup[0];
    Also, you have to go to the audiosource component of the audioclip you want to lower the sound of and change the output section to Master(AudioMixer).

  • @IzeIzeBaby
    @IzeIzeBaby 6 лет назад

    Best tutorial i have ever seen about unity's ui. Nice.

  • @lukemoore7319
    @lukemoore7319 6 лет назад +2

    Dude u are so great, I love these tutorials, gonna pass my uni degree based on half of this stuff 😂😂 keep it up 😍

  • @aidenkimmerling7221
    @aidenkimmerling7221 4 года назад +9

    So I know this is an old video, but the Graphics dropdown only actually works when my mouse is hovering over the Quality section in the Project Settings tab

  • @kawaiianthony8090
    @kawaiianthony8090 3 года назад +17

    1:15 Volume
    5:40 Graphics
    7:50 Fullscreen
    9:15 Resolution

  • @HitsquadYT
    @HitsquadYT 2 года назад

    Thx bro you always been there helping even tho you gone now you still helping people

  • @0ptirus95
    @0ptirus95 3 года назад

    Thank you for the tutorial! This is much easier than I thought it would be!

  • @nxt_tim
    @nxt_tim 6 лет назад +122

    dat christmas hat tho :D

    • @cenullum
      @cenullum 6 лет назад +1

      TimTube i thought it was judge hair 😀

    • @zeenzw6678
      @zeenzw6678 6 лет назад

      Lol deutscher iz da

  • @CrunchyPie
    @CrunchyPie 6 лет назад +11

    Make Tutorial about when you press esc you can resume game,quit,and option

    • @jorjolandes
      @jorjolandes 6 лет назад +3

      He explain this in one of the "Tower Defense" videos. In this one ruclips.net/video/789gM9R3htc/видео.html

  • @mikewb88
    @mikewb88 6 лет назад

    Thank you brackeys, this is so much easier than the way I was trying to accomplish it!

  • @framedkraken7403
    @framedkraken7403 5 лет назад +1

    just saw this tutorial and implemented it! new patreon member incoming !!!

  • @theunknowndev_
    @theunknowndev_ 6 лет назад +16

    on Low Quality my Images and Fonts are the same quality as in High. How can I change this?

    • @muhammadalfin2691
      @muhammadalfin2691 4 года назад +1

      In dropdown, change the value to 2

    • @das3tins768
      @das3tins768 3 года назад +3

      @@muhammadalfin2691 which value tho

  • @algirdaslalys3387
    @algirdaslalys3387 6 лет назад +3

    Does anyone has the same bug with builded version in resolution dropdown, where some resolutions are duplicated? You can see same in video (16:23) 720 x 480, 720 x 480. Btw thank you for your professional work, you are awesome:)

    • @JackLOJBond
      @JackLOJBond 6 лет назад

      For me, all the refresh rates are the same (40Hz)! Any idea as to why?

  • @a_overwatchplayer9136
    @a_overwatchplayer9136 6 лет назад

    Brackeys, thank you so much you really have helped me learn a lot by doing this, thank you so much man you're the best!

  • @chakibchemso
    @chakibchemso 4 года назад +1

    the best channel i learnt from it for ever

  • @ASSSGROUP
    @ASSSGROUP 6 лет назад +6

    sorry but i have a problem when my option menu is loaded after playing one scene, it gets to default..(which is high)

  • @CraftyMaelyss
    @CraftyMaelyss 4 года назад +4

    5:36 For some reason, when I drag the handle, it either goes to 0 or -80 but never in between P:

  • @Swagsy
    @Swagsy 6 лет назад

    Thanks for the amazing Tutorials dude!

  • @DriitzzCabal
    @DriitzzCabal 6 лет назад

    i had issue with my text being crisp and clear in the editor but blurried when building the game , this totally fixed it AND it wasn't even related to that LOL! thanks brackeys you the man

  • @serpnta1267
    @serpnta1267 6 лет назад +4

    For those of you getting several of the same resolutions in your resolution drop down, you can get rid of them by going into Edit, Project Settings, Player, Resolution and Presentation and find the Support Aspect Ratios, then untick 4:3, 5:4, and other. You will no longer have the smaller number of resolutions but you won't have any duplicates. The lowest resolution you can then choose is 1280 x 720 (or at least it is for me). If you need something smaller, you may have to do some coding or live with the duplicates..

  • @SavanaStudios
    @SavanaStudios 6 лет назад +19

    for some reason i see 4 - 8 of the same resolutions when i use the dropdown, fixes?

    • @yellowgd3936
      @yellowgd3936 6 лет назад

      Same problem. Any fix?

    • @SavanaStudios
      @SavanaStudios 6 лет назад

      Yellow GD dont worry, when u build the game its good.

    • @brokenos7710
      @brokenos7710 6 лет назад +1

      nope still a problem

    • @SavanaStudios
      @SavanaStudios 6 лет назад

      really?, mine just got Fixed so i dont think i can help you much on this

    • @Yugenki
      @Yugenki 6 лет назад +2

      Having the same problem, works good at editor, but there is some same resolutions at the build

  • @ridhachowdhury1831
    @ridhachowdhury1831 6 лет назад

    Thanks. This stuff is pretty easy but it's nice to see you do it!

  • @yellowgd3936
    @yellowgd3936 6 лет назад

    This tuturial is very completed. Thank you so much!

  • @ie585
    @ie585 5 лет назад +13

    To fix the bug with repeat resolution you need to disable the extra support for the aspect ratio in the player settings. After that, the bug with the rotation resolution will be lost. P.S. sorry for the bad english.
    People need it in the top!

    • @F3NR1R04
      @F3NR1R04 5 лет назад

      thanks a ton!

    • @moenator509
      @moenator509 5 лет назад +1

      I cant find the extra support T_T, Help

    • @sconosciutosconosciuto2196
      @sconosciutosconosciuto2196 5 лет назад +1

      @@moenator509 me too :(

    • @mikecastilho1010
      @mikecastilho1010 5 лет назад +3

      @@zhuohuichen9444 The solution is pretty simple actually the duplicates are different refresh rates for the resolutions, since brackeys only picked the sizes of width and height in the string you can't see then you can keep the duplicates and add the refresh rates using something like string option = resolutions[i].ToString();
      or filter all non-60hz results using
      resolutions = Screen.resolutions.Where(resolution => resolution.refreshRate == 60).ToArray(); istead of resolutions = Screen.resolutions; just make sure you are using System.Linq o/

    • @g5fighter
      @g5fighter 5 лет назад

      @@mikecastilho1010 Also you can do this
      List options = new List();
      int currentResolutionIndex = 0;
      for (int i = 0; i < resolutions.Length; i++)
      {
      string option = resolutions[i].width + "x" + resolutions[i].height + ":" + resolutions[i].refreshRate + "Hz";
      options.Add(option);
      if(resolutions[i].width == Screen.currentResolution.width && resolutions[i].height == Screen.currentResolution.height && resolutions[i].refreshRate == Screen.currentResolution.refreshRate)
      {
      currentResolutionIndex = i;
      }
      }
      resolutionDropdown.AddOptions(options);
      resolutionDropdown.value = currentResolutionIndex;
      resolutionDropdown.RefreshShownValue();
      public void SetResolution(int resolutionIndex)
      {
      Resolution resolution = resolutions[resolutionIndex];
      Screen.SetResolution(resolution.width, resolution.height, Screen.fullScreen, resolution.refreshRate);
      }

  • @galaktoza
    @galaktoza 4 года назад +4

    That dynamic float argument is missing from my functions list in the editor. How to write it manually in the script?

    • @defoxik
      @defoxik 4 года назад +1

      download new unity 2019.2.9f1

    • @luccasyamnotho3280
      @luccasyamnotho3280 4 года назад

      @@defoxik Mine is the 2019.3.0a12 version and I still have the same problem! Does any one know what do I have/should/must do, pls?!

    • @TheWestonini
      @TheWestonini 4 года назад +3

      @@luccasyamnotho3280 forum.unity.com/threads/slider-on-value-changed-broken-in-osx.746090/
      You can go into debug mode and select the "Event Defined" option there to get the same result.

  • @ACBros_06
    @ACBros_06 6 месяцев назад +1

    Still the greatest source of info on internet

  • @elidorvarosi3500
    @elidorvarosi3500 6 лет назад

    The best tutorial ever. Thank you for being such a big help.

  • @sandrocutri520
    @sandrocutri520 4 года назад +43

    The Ultimate Game UI costs now😭

    • @bevvy.bee9
      @bevvy.bee9 4 года назад +1

      nOOOOOOOO!!!!!

    • @refdelx
      @refdelx 4 года назад +2

      I know, its so annoying

    • @anishsr1181
      @anishsr1181 3 года назад

      It's 25$😭

    • @KrakinTheKonsole
      @KrakinTheKonsole 3 года назад +2

      NO GOD! NO GOD! PLEASE NO NO NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

    • @EgeSayn
      @EgeSayn 3 года назад +1

      @@west770 I mean it would be completely okay if it was not free in the very beginning. But he changed the price right after this video (it is 2nd time I am watching this video). It is not a nice thing to do.

  • @crump05
    @crump05 4 года назад +7

    when i use the slider the audio mixer changes but the sound does not increase or decrease at all

    • @kondzio3500
      @kondzio3500 3 года назад +1

      I gave same problem.
      i know u wrote it 8 months ago, but did u find solution?

    • @crump05
      @crump05 3 года назад +5

      @@kondzio3500 sure, go to your audio source, there should be a slot for an audio mixer. This is to tell which sound to mute and which to not, you can have 2 audio mixers: music and sfx, and 2 sliders and that is so when you mute music sfx doesnt get affected and this is the solution

  • @xt1988
    @xt1988 6 лет назад

    omg, i have learned so much in 17min, dude i love your work :D

  • @noobsaibot3922
    @noobsaibot3922 6 лет назад

    I just subscribed to this channel and thinking why didn't i do it before its the best! you teach the best way

  • @DavidBrit101
    @DavidBrit101 4 года назад +19

    1:03 was free, feelsbadman

    • @marcuslane6289
      @marcuslane6289 4 года назад +1

      Yeah probs got an influx of traffic from this vid and decide to price it up :(

    • @JeloOW
      @JeloOW 3 года назад

      FeelsOkayMan there are probably better free alternatives

  • @ApexArtistX
    @ApexArtistX 6 лет назад +18

    the audio slider does not saved when changing scenes, looks like a bug.... can you combine this volume slider with another tutorial AudioManager singleton ?

    • @JayRondon
      @JayRondon 4 года назад

      i consider myself new to coding and unity overall and even i know this is just sloppy. like you know what problems will happen before they even happen type of sloppy.

    • @paranoidpanda7694
      @paranoidpanda7694 4 года назад

      @@JayRondon It changes when going to new scenes because the options aren't being saved. You'll need to implement a save and load system for settings

    • @XiaoZong322
      @XiaoZong322 4 года назад

      I second this question. Would like a tutorial of the audio mixer (or the slider) working with AudioManager

    • @alleyesonme1432
      @alleyesonme1432 4 года назад +2

      @@XiaoZong322 Brackeys is good and all, but most of times he doesn't show all nuances of his scripts and how to fix simple problems. You will need to jump around RUclips to find solutions to very simple problems arising from his scripts to fix them. Here what i found and used. First link to slider problem (slider doesn't work properly - like starting to tune down sound only after 50% of slider) and second video about mute button. Hope that helps.
      gamedevbeginner.com/10-unity-audio-tips-that-you-wont-find-in-the-tutorials/ - 9-th tip, slider problem.
      ruclips.net/video/OeZuwgG6HJM/видео.html - mute button video.

    • @davegorbik1033
      @davegorbik1033 4 года назад +3

      try this guys :
      ibb.co/GFCWS2v

  • @billycoen1392
    @billycoen1392 5 лет назад

    Spanish: El mejor tutorial de Unity es este. Yo pude programar con exito el menu de mi juego. Muchas gracias, saludos desde Colombia. English: The best Unity tutorial is this one. I could reprogram sucesfully the menu of my game. Thank you very much, greatings for Colombia. ☺😀👏👍

  • @DerAua
    @DerAua 6 лет назад

    Thank you, that is the greatest Christmas present! :-D Exactly what I've been waiting for :-D

  • @paspiregamer5114
    @paspiregamer5114 6 лет назад +5

    Merci beaucoup

  • @sartr593
    @sartr593 6 лет назад +10

    hmm, I did everything like you showed in this video and my master volume changes with volume slider, but music in my game doesn't change at all (and other sound effects as well)! That is very weird and I am stuck 🤔

    • @tranquilmagister8481
      @tranquilmagister8481 6 лет назад +3

      found the solution? cause i think i have the same thing; and nothing seems to work...

    • @sartr593
      @sartr593 6 лет назад +7

      Yeah, in Audio Source Component (where you set your audio) add MainMixer->Master in the Output.

    • @tranquilmagister8481
      @tranquilmagister8481 6 лет назад

      Thank you so much! that was exactly what i did wrong.

    • @badluckderp
      @badluckderp 6 лет назад

      how did you connect the audio in the slider?

    • @jagpreetsingh4993
      @jagpreetsingh4993 6 лет назад

      You just me a lot of headache and time.. Thank you, you goddamn bloody legend

  • @arturmonteirodacosta170
    @arturmonteirodacosta170 6 лет назад +2

    That was an amazing tutorial! Congrats for it and thank you for that! Would you be planning on creating a save/load system any time soon?

  • @Diego0wnz
    @Diego0wnz 4 года назад

    it's so insane. I just made a game in the 2-week holidays because of you?
    Thanks so much stranger. I mean god brackeys =) haha

  • @feral9077
    @feral9077 6 лет назад +12

    Can yo make a video on character selection/customization?

    • @acherowyo7555
      @acherowyo7555 6 лет назад +3

      I know i'm pretty late, but blackthornprod have some videos on character customization!

  • @akebengtsson4857
    @akebengtsson4857 6 лет назад +5

    I have ALWAYS wanted to make a rhythm game! Like those Hatsune Miku Diva games for PS4. However, it seems really complicated with how to make it all works. Can you explain the basics for a rhythm game? - How to force press of certain buttons, multiple buttons, timing rate (cool, fine, sad, worst etc), keeping a combo/breaking a combo, hold notes and etc. You would really be of help! :D

  • @SH-pu6wf
    @SH-pu6wf 4 года назад +1

    Honestly, without your tutorials i would never finish my game. BIG THANK TO YOU!

    • @EngiNetion
      @EngiNetion 4 года назад

      Can i play your game?

    • @disapprove6130
      @disapprove6130 11 месяцев назад

      i also want to play your game :>

  • @j3ns
    @j3ns 6 лет назад

    Nice video! Thanks a lot for the ui videos!

  • @mrGee
    @mrGee 4 года назад +3

    Thanks for the tutorial I'm getting the following error:
    NullReferenceException: Object reference not set to an instance of an object
    SettingsMenu.Start () (at Assets/UI/Scripts/SettingsMenu.cs:20)

    • @albin6003
      @albin6003 4 года назад

      Same but i dont know how to fix it

  • @RequiemsVoid
    @RequiemsVoid 6 лет назад +5

    Bit of a random question. I recently watched the "unite Austin 2017 game architecture with scriptable objects" talk which talked about modular scripting.
    Any chance you'd be interested in breaking down his core points into an easier to follow lesson for beginners?
    Example: (ELI5) How exactly does a player and an enemy both use the same HP script? (Where is the data stored if not on the individual characters?)

    • @TheDarkranium
      @TheDarkranium 6 лет назад +1

      Well, as an example you can have an HP class which will hold the health value. This will be the base class. Then you will inherit from that class instead of MonoBehaviour with another class called EnemyHP and another one called PlayerHP. Now you have 3 classes. 1 - HP class, 2 - EnemyHP class, 3 - PlayerHP class. Then in the HP class you will have an empty take damage function or OnColliderEnter class, but it has to be a virtual class just so you can override in the class you are inheriting it on. Then, you make another take damage or OnColliderEnter class in the EnemyHP and PlayerHP classes as ex: 'protected override void OnColliderEnter() {}' Then for EnemyHP, you can say if a bullet with Player tag entered it you can subtract from the base hp. Or vice versa. Any variable in base class can be accessed from child classes as long as variable is 'protected' or 'public'. So, even though you don't actually see the variable in that class you can still access it just like a GameObject type since it is from MonoBehaviour.
      Anyway, it sounds difficult but if you follow what I wrote above step by step you should understand inheritance which helps a lot making games. Basically however, you make a base class, two different classes inherit from that base class. You assign those 2 classes in the inspector to Player and Enemy. Then variables from base class will be exposed on inspector. Then you populate the scripts as I said above. Then next time you want to make a new HP script all you need is a new class with the difference of how they take damage.
      However, if EVERYTHING is same with Player and Enemy, how they take damage which means friendly fire included then you can use the same exact same script anyway. I do not know if it was clear but if you don't understand something I can try to explain more. Good day!

    • @paulyounger1190
      @paulyounger1190 6 лет назад +1

      I watched that talk recently and for ludum dare 40 I tried to implement the principles from that talk to make my game so I might be able to shed a bit of light on this. Its kind of tricky to explain through the comments but hopefully you can get something out of it.
      Scriptable objects are saved as assets, so for example you can create a scriptable object that holds a float (lets call its class FloatHolder, all it needs to do is inherit from Scriptable Object and have a public float field), then in both your enemy and player class you can put "public FloatHolder floatholder", and they will now have a field to drag a FloatHolder in. You can create as many FloatHolder instances as you want and name them individually, but you can also have multiple objects reference the same instance of FloatHolder, so for example you can have one instance of FloatHolder that you use to track the players HP, lets call it playerHPFloatHolder, and you can reference it from both the player (to modify it based on healing/taking dmg), the enemy(to modify it or to modify enemy behavior depending on player hp), the game manager(to end the game if you get below 0hp), etc. Experiment with it and the principles of the design pattern will become more clear I think

  • @SadChihuahua
    @SadChihuahua 6 лет назад

    Can't wait for you're MAKING OF Ludum Dare video!

  • @mariuszkrawiec3204
    @mariuszkrawiec3204 4 года назад

    It actually works now! Thanks to Brakeys.

  • @Seshua87
    @Seshua87 8 месяцев назад +5

    No offense to you Brackeys

  • @Chrras
    @Chrras 2 года назад +4

    Nice tutorial, but I am a bit surprised that it didn't touch upon the volume slider being logarithmic (due to it being tied with the sound in dB). The way it is showcased here, you get a very sensitive slider, which is not very user friendly at all

    • @whereistheguru.
      @whereistheguru. 2 года назад

      You're so very right, do you have a working solution of how to modify it to work perfectly from 0% to 100% of volume?

    • @CalledCracki
      @CalledCracki 2 года назад

      @@whereistheguru. try this
      audioMixer.SetFloat("volume", Mathf.Log10(volume) * 20);
      [be aware of variable names]

  • @georgeoutters5657
    @georgeoutters5657 6 лет назад

    You are THE best programmer I have ever seen!!!!:)

  • @kefflix5087
    @kefflix5087 3 года назад

    my game has so many bugs and i was so frustating that never things worked but i watched this video, everything worked and now i am motivated to keep going on my game;)