How To Get A Better Grid Layout in Unity

Learn how to build a menu with switchable panels and a flexible grid layout tool in Unity!
Making UI that Looks Good: • Making UI That Looks G...
Tab System: • Creating a Custom Tab ...
Localisation Tool: • Building a Localizatio...
--------------------------------------------------------------------------------
Want to support the channel?
Get the GameDevGuide mug and other merch! ☕ - www.gamedevguide.store
Use these links to grab some cool assets from the asset store:
Get the Must Have Assets! - assetstore.unity.com/top-asse...
Free Unity Assets! - assetstore.unity.com/top-asse...
New on the Asset Store! - assetstore.unity.com/top-asse...
Top Paid Asset Store Packages - assetstore.unity.com/top-asse...
Asset Store Partners - assetstore.unity.com/lists/as...
--------------------------------------------------------------------------------
Socials and Other Stuff:
• Subscribe - kzread.info?...
• Join the Discord - / discord
• Twitter - / gamedevguideyt
• Facebook - / gamedevguideyt
• Instagram - / gamedevguideyt

Пікірлер: 379

  • @user-fz6zw8uv2r
    @user-fz6zw8uv2r Жыл бұрын

    This works amazing, thanks man. For anyone who can be interested, I modified the for to this so the last one can fill all the empty space: float columnCount = 0; float rowCount = 0; for (int i = 0; i { rowCount = i / columns; columnCount = i % columns; if(fitType == FitType.WIDTH || fitType == FitType.HEIGHT) { var rest = (rows * columns) - i; if (i == rectChildren.Count - 1 && rest > 0) { cellSize.x *= rest; columnCount /= rest; } } var item = rectChildren[i]; var xPos = (cellSize.x * columnCount) + (spacing.x * columnCount) + padding.left; var yPos = (cellSize.y * rowCount) + (spacing.y * rowCount) + padding.top; SetChildAlongAxis(item, 0, xPos, cellSize.x); SetChildAlongAxis(item, 1, yPos, cellSize.y); } Also someone write the script and put it on github so yall don't need to pause and copy for the eternity. github.com/IkeThermite/GameDevGuide-CustomTabsAndFlexibleGrid/blob/master/Custom%20Tabs%20and%20Flexible%20Grid/Assets/Scripts/FlexibleGridLayout.cs

  • @liormax
    @liormax4 жыл бұрын

    is this true? did someone actually made a grid layout tutorial that is actually usefull!?

  • @ben_burnes

    @ben_burnes

    4 жыл бұрын

    Amusingly, by bypassing Unity's grid system and making their own haha

  • @jameshood790

    @jameshood790

    4 жыл бұрын

    Not only that, but it gets right to the point and it's not a series of 27 videos where you watch someone type and debug for hours!

  • @connorking9217
    @connorking92174 жыл бұрын

    For anyone having trouble with spacing causing overflow with more than a 3x3 grid: float cellWidth = (parentWidth / (float)columns) - ((spacing.x / (float)columns) * 2).... Should be: float cellWidth = (parentWidth / (float)columns) - ((spacing.x / (float)columns) * (colums - 1)).... Same for height. Thanks for the great video, keep it up!

  • @bausHuck

    @bausHuck

    4 жыл бұрын

    Thanks. I was wondering this was happening.

  • @timhengeveld

    @timhengeveld

    4 жыл бұрын

    Awesome! This also fixed a problem I was having where a grid with two columns erroneously added spacing to the rightmost and bottommost items in the group

  • @daniellord4174

    @daniellord4174

    4 жыл бұрын

    Not just 3x3, it's all grids. Wandering if OP left this one little flaw to find those blind copy pasta's out there. Best part is OP definitely fixed it before he drags the grid around in the editor. new lifegoal: make awesome unity tutorial, leave one blatant flaw. Play unity games looking for ones that made it to production still containing flaw

  • @CorgiCA

    @CorgiCA

    4 жыл бұрын

    Cheers I was just about to commit to a night of stepping through ✌️😅😇

  • @eliebeaino

    @eliebeaino

    3 жыл бұрын

    watching this vid half asleep, and i barely understood half of what he said as i'm skimming through it to get a general idea of the system he's done, but when he hard-coded that 2 for the spacing, i was so confused and doubtful. I'm glad to know my confusion was put in the right place. I'm a new unity learner and a new coder, this feels good to know that i'm in the right direction of learning.

  • @motifgaming2080
    @motifgaming20804 жыл бұрын

    Hey, there are very few KZreadrs who make advanced tutorials so please continue making these videos even when I think I already know everything about the topic I still learn something new from your videos.

  • @thatanimeweirdo
    @thatanimeweirdo4 жыл бұрын

    Honestly, it's so refreshing to see someone finally talk about these things. As a UI designer myself, it always seems as these topics just fall flat for most smaller/middle-sized projects.

  • @jameshood790
    @jameshood7904 жыл бұрын

    I love how you explain what you're doing without making us watch hours of typing and debugging like many other Unity tutorials. Brilliant, right to the point, and right at my level of expertise. Subscribed, and thanks.

  • @aktchungrabanio6467

    @aktchungrabanio6467

    Жыл бұрын

    Exactly!

  • @Andycraft608
    @Andycraft6084 жыл бұрын

    I'm so happy I found your channel! There are very very few informative and high quality UI Unity tutorials like yours on the internet. Thank you for sharing the knowledge.

  • @SassyPantsy
    @SassyPantsy Жыл бұрын

    This is incredible! Hands down the best tutorial about Unity UI I've ever seen, even general purpose UI implementation. Plus sharing the script itself is very generous of you, it's a must have asset. Subbed&Liked!

  • @TheRealMonkeyCrime
    @TheRealMonkeyCrime3 жыл бұрын

    Thanks for making a great series of clear, factual and enjoyable videos. I'd love to see something covering best practices for interfacing your game's logic, variables etc to the UI.

  • @AmanKumar-tu2og
    @AmanKumar-tu2og4 жыл бұрын

    I cannot thank you enough for this. I was totally frustrated by the default grid component, but was too lazy to build an alternative.

  • @iamjimgroth
    @iamjimgroth4 жыл бұрын

    This is great. I never knew I needed something like this until you mentioned it in the discord the other day. Thanks!

  • @ben_burnes
    @ben_burnes4 жыл бұрын

    As someone who usually abhors UI work in Unity, this channel is absolutely brilliant. Thank you for this!

  • @moromann1
    @moromann14 жыл бұрын

    How have I never seen this channel before?? You have some amazing videos that are very explanatory, concise, and easy to understand. Please continue making videos!

  • @oscar-qr5yy
    @oscar-qr5yy4 жыл бұрын

    I usually don't comment videos. I was already subscribed to you but finding this video looking for a dynamic grid made me activate notifications and comment this. THIS IS AWESOME. Thank you very much!

  • @bip901
    @bip9014 жыл бұрын

    When picking a font, read the font license VERY carefully to avoid copyright issues. I'm pretty sure Unity embeds fonts into the game, and most font licenses don't allow that.

  • @GameDevGuide

    @GameDevGuide

    4 жыл бұрын

    Great advice! Yeah, licensing popular fonts can be very expensive, but there's also a lot of similar ones that are more affordable. Definitely agree that, like anything, it's worth making sure your usage is covered!

  • @StigDesign

    @StigDesign

    4 жыл бұрын

    @@GameDevGuide use default Comic Sans? :D

  • @heparo8704

    @heparo8704

    4 жыл бұрын

    Lots of free fonts sites out there 1001Fonts for example my favorite. Edit : free fonts for commercial use, free for personal use etc..

  • @ben_burnes

    @ben_burnes

    4 жыл бұрын

    @@heparo8704 Word of warning: "Free" might mean "Free to use non-commercially". If you intend on selling or distributing your game, do a bit of research beforehand to make sure.

  • @koko0riginal

    @koko0riginal

    4 жыл бұрын

    A free font that is a suitable replacement recommendation? free as In for commercial use with distribution without modification free

  • @OverAndOverAndOver
    @OverAndOverAndOver3 жыл бұрын

    I LOVE your channel!!! You always have exactly what I need!! I've watched every one of your videos now, and they're all just incredible! You deserve more subscribers, I wish there were more videos to watch!

  • @aerond8851
    @aerond88514 жыл бұрын

    This channel is so informative and fun to watch at the same time, much more than other Unity tutorial channels I've seen. You definitely deserve more subscribers and attention. Keep it going, your videos are amazing and they help me with my Unity projects, thank you!

  • @MaksMikhnevych

    @MaksMikhnevych

    4 жыл бұрын

    don't hesitate to share the video so the channel will get more subscribers as you wish him so. Apply yourself.

  • @JT_6233

    @JT_6233

    11 ай бұрын

    I just wish the "Tab" script used at 2:55 would be somewhere to find. I can't find it here in the comments, not in any fan made repository and not in his other videos. Not sure how to proceed without this script

  • @r1pfake521
    @r1pfake5213 жыл бұрын

    For dynamic or flexible grid I always combine a vertical layout group and filled it with horizontal layout groups for the rows and then every horizontal layout group contains the "cell" elements of the current row. You could also achieve a dynamic grid by using the existing grid layout and update the cell size property in code depending on the total grid width / height. But still nice to how a custom layout group can be implemented and bookmarked for later.

  • @llareia
    @llareia4 жыл бұрын

    Thank you SO much for your videos. Unity UI has always been very frustrating for me, and you make it so much easier!

  • @Endoo95
    @Endoo954 жыл бұрын

    Love it! Grids are so important, and your tutorial is so great. Thanks man!

  • @SnakPak
    @SnakPak4 жыл бұрын

    This is the best Unity tutorial I've ever seen for so many reasons. Instant subscribe

  • @ImSendingXOXO
    @ImSendingXOXO Жыл бұрын

    Wow, what an amazing tutorial! So educational, well-made, and perfectly paced. Thank you so much!!

  • @UmeshVerma-pi8oi
    @UmeshVerma-pi8oi4 жыл бұрын

    Thanks for this awesome tutorial, now I am getting some confident and scale UI designs to the next level by programmatically.

  • @_denzy_6310
    @_denzy_63104 жыл бұрын

    You go so fast dude! I cannot follow without pausing every second. Also share the scripts where possible. Awesome stuff

  • @gloriousptr
    @gloriousptr4 жыл бұрын

    Really love your channel, every video is so exciting and helpful. Thanks for all the tutorials.

  • @quantumpanic
    @quantumpanic4 жыл бұрын

    Yes! I've always dabbled in trying to customize the grid layout group component because of its potential for functionality (despite being lackluster in what it offers initially). Really hope Unity doesn't overhaul it too much in the future.

  • @shidygames
    @shidygames5 ай бұрын

    This is lit. Thank you for taking the time to show and explain such things, we all agree that the default Grid system is lacking some basic features. Cheers!

  • @TNTCProject
    @TNTCProject4 жыл бұрын

    Super useful Matt! Smooth and clear as always! As the name suggests it is really flexible :D

  • @afrakes4510
    @afrakes45102 жыл бұрын

    I'm speechless. This is amazing!! Incredible work bro.

  • @simoncodrington
    @simoncodrington4 жыл бұрын

    Great content mate, hope to see more UI stuff in the future ❤

  • @CodingWithUnity
    @CodingWithUnity4 жыл бұрын

    Really good video! Deff the best channel for UI/UX related topics by far

  • @RetroGrazer
    @RetroGrazer9 ай бұрын

    This script saved my butt when trying to make a grid of n x n size. Thank you so much

  • @SanyaBane
    @SanyaBane3 жыл бұрын

    That's crazy how Unity doesn't have such useful thing out of the box. Thanks a lot!

  • @shazplay8878
    @shazplay88784 жыл бұрын

    Keep doing tutorials! It's very informative and your code is example of good code for me :)

  • @The_Ancient_Guardian
    @The_Ancient_Guardian10 күн бұрын

    This video is a gold mine to learn, thank you.

  • @ArthurDetaille
    @ArthurDetaille4 жыл бұрын

    Every video is even more impressive as the previous one !! :)

  • @TrueIndian
    @TrueIndian4 жыл бұрын

    Informative and in depth tutorial on a specific topic.Thanks.

  • @FerdieSwinkels
    @FerdieSwinkels4 жыл бұрын

    This is an amazing tutorial, nice work!

  • @rutchjohnson
    @rutchjohnson4 жыл бұрын

    This is so super helpful!

  • @aussieraver7182
    @aussieraver71822 жыл бұрын

    You just simplified every future UI pain. Flexbox did the same for web development.

  • @pandaengine
    @pandaengine4 жыл бұрын

    Hey man, this is great! I'll definitely use it to design my UI from now on. I already have a half-baked dynamic grid system, but it's only for dynamically initializing an inventory in a scroll rect. I can see that your solution can be easily adapted to that. Keep up the good work man! I love your tutorials!

  • @Shinobi31415926
    @Shinobi314159264 жыл бұрын

    Really useful tutorial. Thank you!!

  • @5thBabbitt
    @5thBabbitt3 жыл бұрын

    I found your channel just recently and I love it

  • @TheJeffries7
    @TheJeffries74 жыл бұрын

    I love the venom anytime grid layouts are mentioned.

  • @szpickij
    @szpickij4 жыл бұрын

    Excellent! Keep it up Matt!

  • @OblivionTanks
    @OblivionTanks4 жыл бұрын

    Cool vid. For the project I'm working on I went for a 3D type menu system that navigates like a point and click adventure. Though at first I was using a typical 2d tabbed grid Ui. It was slow and boring to navigate, The 3D menu made things so much more fluid, fast and fun to navigate. If you are going to make a game with lots to do like my project. Might as well make the menus/inventory fun to open up. That the issue I have with lots of AAA games the menus are slow and boring to navigate and for most open world games you spend to much time in them.

  • @rmt3589
    @rmt3589 Жыл бұрын

    Thank you. I think this'll give me most of what I need to make my website simulator!

  • @chrlw
    @chrlw3 жыл бұрын

    Absolute top notch video! Thank you so much!

  • @Tauruspasific
    @Tauruspasific4 жыл бұрын

    I only want to say thanks for all this such amazing job are you doing. ❤️

  • @Knolle3
    @Knolle34 жыл бұрын

    So you are telling me i just found this amazing guy who can code AND explain to me how it is done? No leaving out extra steps. Love it

  • @cradle_of_chaos
    @cradle_of_chaos4 жыл бұрын

    This is excellent work.

  • @christinaVennegerts
    @christinaVennegerts2 жыл бұрын

    Awesome tutorial, thank you very much!

  • @alextreme98
    @alextreme984 жыл бұрын

    you should post more, you are so good dude, i learned a lot from you, thanks 🥇

  • @erdemalpkaya
    @erdemalpkaya7 ай бұрын

    This is amazing. Thanks for the great work

  • @adek445
    @adek4454 жыл бұрын

    That looks so cool!

  • @MertKirimgeriGameDev
    @MertKirimgeriGameDev4 жыл бұрын

    Great tutorial! Must-have toolbox item. Thanks :)

  • @btiwari-games5279
    @btiwari-games52794 жыл бұрын

    This is awesome buddy 🤩

  • @homemacai
    @homemacai3 жыл бұрын

    Your videos are awesome mate! Thank you!

  • @322ss
    @322ss4 жыл бұрын

    Thanks! This is really neat solution! I've (tried) to create something similar, but it wasn't nearly as clean - and I think I just used grid layout group + script that modified grid child sizes...

  • @blaiseandthebambina
    @blaiseandthebambina2 жыл бұрын

    I’m an Unreal user all the way but your video was still so dang good and useful. Thank you! Unfortunately now KZread keeps suggesting Unity videos. Lol :/

  • @ObsessiveGames
    @ObsessiveGames2 жыл бұрын

    Great explanation, will use this in one of my future games

  • @farfi55
    @farfi554 жыл бұрын

    Great content as usual 👍

  • @rahulcorleone4222
    @rahulcorleone42222 жыл бұрын

    Thanks, It came in handy for my current project.

  • @artourprice2435
    @artourprice2435 Жыл бұрын

    Great Tut. Thank you so much for teaching this.

  • @clairej3960
    @clairej39602 жыл бұрын

    fantastic tutorial, thank you

  • @Pedro_Marangon
    @Pedro_Marangon4 жыл бұрын

    I've been waiting for this video for a long time!

  • @MaksMikhnevych
    @MaksMikhnevych4 жыл бұрын

    Damn, king, what a great approach!

  • @richardnorbron4969
    @richardnorbron49693 жыл бұрын

    Great tutorial. Thanks.

  • @viniciusps01
    @viniciusps014 жыл бұрын

    All of your vídeos are great. Thank you by that :)

  • @-vhs
    @-vhs4 жыл бұрын

    I am in love with your channel!

  • @rubyrails2329
    @rubyrails23294 жыл бұрын

    The best channel for unity tutoral with Brackeys

  • @osmancanernurdag
    @osmancanernurdag3 ай бұрын

    This is amazing bro. Thank you :)

  • @dankenarigato
    @dankenarigato4 жыл бұрын

    WOW!!!!! this is very useful .thank you GDG~

  • @allmonty
    @allmonty3 жыл бұрын

    Very nice and useful, thank you :D

  • @ahmedradwan5385
    @ahmedradwan53854 жыл бұрын

    one of the best channels ever

  • @thecookies6109
    @thecookies61092 жыл бұрын

    Great Found what I was looking for.

  • @admulberg
    @admulberg4 жыл бұрын

    Hi! For enabling/disabling you can just do: panels[i].gameObject.setActive(i == panelIndex); instead of using if/else

  • @Sergalt
    @Sergalt4 жыл бұрын

    That is really nice and informative tutorial

  • @xxx.xxx.xxx.xx1joker706
    @xxx.xxx.xxx.xx1joker7064 жыл бұрын

    Excellent. Many thanks.

  • @unitypro
    @unitypro3 жыл бұрын

    Loads of thanks for this video

  • @samserious5483
    @samserious54833 жыл бұрын

    Awesome, thank you!

  • @darkotomic943
    @darkotomic9433 жыл бұрын

    The only Unity channel that is based on real practices.

  • @Niihiiliith
    @Niihiiliith2 жыл бұрын

    This helped me a lot today. Thanks ^__^

  • @akaHarvesteR
    @akaHarvesteR3 жыл бұрын

    Brilliant work! UI work in unity is always such a pain IMO. I've been doing it for ten years and I still struggle with those damn layout group components. I will definitely give yours a try. Also thank you for implementing padding using floats!! (Ever notice that unity's use integers?)

  • @haos4574
    @haos4574 Жыл бұрын

    great tutorial, exactly what I am looking for. I wonder if you have plans to add a scrollview to the custom grid layout, which would be extremely useful.

  • @kken8766
    @kken87664 жыл бұрын

    this video is very helpful. u r awesome. I wish your channel has more videos to watch.

  • @techmaster9041
    @techmaster90413 жыл бұрын

    OMG there is someone better than Brackeys. U R My new FAVOURITE KZreadR!!!!!

  • @danthesandman
    @danthesandman4 жыл бұрын

    It felt a little cathartic when you took a jab at the grid layout in the last video. After seeing that in this video as a UI/UX person I had to sub. One question though: Does this Flexible grid work with a content size fitter?

  • @iamvironic
    @iamvironic2 жыл бұрын

    I should check the comments earlier. Was sure something wrong, but still spent a hour trying to understand the logic, as I was sure in great videos like these there are no mistakes.

  • @pandaengine
    @pandaengine4 жыл бұрын

    To people who are having overflowing issues with spacing, change the lines where you set cellWidth and cellHeight with these. Parentheses are very imporant here. float cellWidth = (parentWidth / columns) - (spacing.x / ((float)columns / (columns - 1))) - (padding.left / (float)columns) - (padding.right / (float)columns); float cellHeight = (parentHeight / rows) - (spacing.y / ((float)rows / (rows - 1))) - (padding.top / (float)rows) - (padding.bottom / (float)rows);

  • @andreperegrina
    @andreperegrina Жыл бұрын

    For anyone needing the fixedWidth and fixedHeight I added this: // fixed width if (fitType == FitType.FixedWidth) { // calculated columns based on width and spacing float width = rectTransform.rect.width; colums = Mathf.FloorToInt((width + spacing.x) / (cellSize.x + spacing.x)); rows = Mathf.CeilToInt(transform.childCount / colums); } // fixed height if (fitType == FitType.FixedHeight) { // calculated rows based on height and spacing float height = rectTransform.rect.height; rows = Mathf.FloorToInt((height + spacing.y) / (cellSize.y + spacing.y)); colums = Mathf.CeilToInt(transform.childCount / rows); }

  • @gamerzshare550
    @gamerzshare5504 жыл бұрын

    Simply awesome. Sourcecode will be great.

  • @mahna_mahna

    @mahna_mahna

    3 жыл бұрын

    Another coder has made this from the videos: github.com/IkeThermite/GameDevGuide-CustomTabsAndFlexibleGrid

  • @neves188
    @neves1883 жыл бұрын

    THANK YOU SO MUCH!!!

  • @ninjaclone
    @ninjaclone4 жыл бұрын

    Awesome video! How/Where did you learn Unity so well? I am just getting back into game design and I am looking for additional resources.

  • @urselhorst9253
    @urselhorst9253 Жыл бұрын

    i love this. your awesome!

  • @TYNEPUNK
    @TYNEPUNK3 жыл бұрын

    Very good video thank you very much

  • @heparo8704
    @heparo87044 жыл бұрын

    It reminds me of java's good old GridBagLayout... ^^. Good job !

  • @andrewm4815
    @andrewm48154 жыл бұрын

    Great video.

  • @RugbugRedfern
    @RugbugRedfern4 жыл бұрын

    Is there any way you can post the code on github?

  • @mahna_mahna

    @mahna_mahna

    3 жыл бұрын

    Another coder has made this from the videos: github.com/IkeThermite/GameDevGuide-CustomTabsAndFlexibleGrid

  • @RugbugRedfern

    @RugbugRedfern

    3 жыл бұрын

    @@mahna_mahna Thanks!

  • @mahna_mahna

    @mahna_mahna

    3 жыл бұрын

    @@RugbugRedfern You're welcome. I didn't expect any response, since this is 8 months late. :D I just dropped it in response to all the people I saw asking for it so that the NEXT person that came along could find it easily.

  • @johnsartain4160

    @johnsartain4160

    7 ай бұрын

    Wow this makes me so happy

  • @RickMcMichael
    @RickMcMichael3 жыл бұрын

    Great videos, my only complaint is not being able to see what components are on the parent objects before you get started. Also did I miss the creation of the "Tab" Script? - I saw TabGroup and TabButton. Assuming you made one off camera? Maybe one day you could do some tutorials for World Space canvas scripts xD