✅ Get the Project files and Utilities at unitycodemonkey.com/video.php?v=Cyq6mpY-ILA 🌍 Get the Characters Pack cmonkey.co/characterspack_charcustom 🔴 Get the Synty Characters cmonkey.co/synty_modularfantasy_charcustom2 🎮 Play my Steam game! cmonkey.co/dinkyguardians 🔴 RELATED VIDEOS 🔴 How to do Character Customization! (4 Methods, Unity Tutorial for Beginners) ruclips.net/video/nSmEirb8JGM/видео.html Why you should NOT make everything PUBLIC! ruclips.net/video/pD27YuJG3L8/видео.html What are Delegates? (C# Basics, Lambda, Action, Func) ruclips.net/video/3ZfwqWl-YI0/видео.html Simple Saving and Loading with JSON to a File (Unity Save System Tutorial for Beginners) ruclips.net/video/6uMFEM-napE/видео.html How to Save File with Screenshot! (Save System Unity Tutorial) ruclips.net/video/dqySkMFieHE/видео.html
17:54 Just in case you didn't know: You can drag and drop a whole selection of selected objects into such a serialized array, you just have to drop them on the name of the variable, not on the actual list of elements. So selecting all hats and just dropping them on "Mesh Array" (rather than on "Element 0" should add them automatically to the array. There really is now reason to drag and drop references one by one into the inspector. But maybe I misunderstood you, Cool video though, as always!
This is was my fear while watching video 😂, I was like hoping he didn’t actually drag every single one individually. You can lock the inspector too if you so it’s easier to select all objects, then drag them into inspector.
That trick is indeed great but does not work in this case because the Meshes are subobjects of the .fbx If the asset pack was set up with one huge .fbx and inside it all the hat meshes then yup it would work, but each Hat is as a separate .fbx with a mesh inside it.
@@CodeMonkeyUnity In this case, you simply search for the hats in the project folder, with the type mesh “t:mesh hat”, then only the mesh’s of the hats will appears, then you can simply drag and drop them. Another method is to open the FBX sub object then select them manually there, then drag and drop.
Usually you can but not in this case because the Meshes are sub objects of the .FBX, if you drag multiple .FBX it won't automatically grab the child meshes
Before I dive into this video, I'd like to highlight the specific requirements of my planned game's customisation functionality: • being able to change "skins", which requires swapping out the skinned mesh of the character, or so I understand. • being able to choose between "agile" and "noble" animation sets, or the equivalents thereof, which would require swapping out the animator controller, unless someone can suggest an alternative method (I specifically require that certain characters have one of the two animation sets as the default)
I really like it how you show how you had it in your finial game. I want to make tutorials on stuff but they turn out to be too long because I show how to do everything that I have it do in my games. If you do not mind I will start doing what you are doing to show the finial code. Thank you again for the tutorial!
@@tiqosc1809 What? I do not understand you statement. if your saying "Make sure you know what code you are showing people to use" then yes I will do that. If you are saying "Make sure you know who I am copying" then I know I am copying a part of a format of a tutorial. I am trying to make tutorials about my own stuff and not trying to copy someone else tutorial.
@@tiqosc1809 Ya I normally try to watch a tutorial then try to make that same system myself so that I have a better understanding of what I am doing. Thanks for the tip!
hy, love your content and I was wondering if you could show us how you made outline/toon shader for your game dinky guardians. I feel like there aren't many good tutorials on shading and if there are their results (outlines) aren't usually that good.
In my case I just used an asset called Quibli I believe Matt from the channel GameDevGuide recently made a shader tutorial on making a toon shader Or you can look at Unitys Open Projects and see how they did their toon shader unitycodemonkey.com/video.php?v=3VnNBidNPM4
By the way, New Jersey Transits operates a train called the 'Dinky'. It's a short spur branch railroad that operates from Princeton, NJ ( where Princeton University is located) several miles away to the main NorthEast Corridor railway that runs from Boston to past Washington, DC. It's like the I-95 of American rail.
Thank you for the guide! Got a small question: What happens when you add bodyparttype 1 (the hat) and index of 3 (the element when there is no mesh for the hat)? It returns 'bodyparttype: 1 and index: -1' for me, causing an index out of bounds when trying to load. Bit confused on how to fix this though. I'd expect the index to be 3, despite there being no mesh for the 3rd element. Edit: One solution would be to add a mesh that holds no actual mesh just a skinned mesh renderer for each part, but that doesn't sound very elegant.
Wow this tutorial was great! Loved every minute of it and I understood all of it. How do you think of coding in such a modular way? I always end up thinking I'm doing it the right way and then end up with spaghetti code xD
The answer is really just experience. I've been writing code for 25 years so by now my brain is already pretty good at looking at a codebase and seeing where I could improve. Also remember refactoring is a normal part of the process, the class that I showed which is what I'm using in my game is NOT the class I started with. As always I write some code, try to write my first draft as good as possible, but I always refactor things when I see I could have done something better. So remember that code is flexible not fixed, so refactor when needed. Keep on learning!
Yeah, I've only been coding for a few years. Experience is key. Refactoring is always the most tedious part but I guess that's the only way to end up with good clean code. Thanks!
Could loading the scene take some processing power for the save and load every time? I'm worried about loading times in unity. Currently building a 3d game but want full character customization.
Thank you for sharing another piece of your great knowledge! Is this system suitable for my case, where I don't have to have a ton of customization, but my character will be getting upgrades to his suit, and I want to swap some suit parts around, but hopefully in a way that would not affect the skeleton and animations, just the look of it, the geometry?
Yup that would also work, although whether you use this mesh method or another method will depend on how your assets are set up. It sounds like you have them set up kind of like Prefabs instead of meshes, so you would do it like the third method I covered in the other char customization video unitycodemonkey.com/video.php?v=nSmEirb8JGM
Behind the scenes, it is clear that the development of even a simple game is difficult... It will be interesting to see other topics on the development of your game, if they are not covered yet...
I'm new to making games but i am a seasoned programmer. Sometimes i want to ask you a question but i have to wait until you release a new video so that gave me an idea to create a site where users (me) can pay you for live Q and A or tutoring or mentoring. Is this a good idea or do you think most indie devs such as yourself are too busy?
I used to have a Discord but I really couldn't keep up with it, especially because Discord is realtime. 1on1 tutoring would be a great idea but really don't have time for it. Although lately once a month I started making a RUclips/Patreon member videos where people can ask anything about any topic and I'll try to help
I have a different character asset, when I try to swap a head for example, the mesh is invisible/disappears. Idk exactly. Is it due to how my asset pack is setup or could this be a general bug? What is the best way to set up such a 3D model in order to get this working
The head disappears? When doing what? Disabling some game object? Different asset packs are set up in different ways so yeah the method will be slightly different ruclips.net/video/nSmEirb8JGM/видео.html Perhaps in your case you just need to swap the material and not the mesh.
Is there a way possible I can get the entire Dinky Guardians template minus the protected parts? I ask because I have all your videos and stuff working but I can’t figure out how to put it all together. The Customizer with the Multiplayer
It's pretty much exactly like I did in my Kitchen Chaos multiplayer course ruclips.net/video/7glCsF9fv3s/видео.html Dinky Guardians started from that codebase And you can also download the project files for this one You just need to synchronize the int indexes for the chosen customization
One thing that should be noted is that this implementations will make unity load all 100+ options of each body part meshes into memory whenever you load your character. I might be wrong, but that would be because you draged the reference of the assets directly. One way around this would be to load them as an Addressable asset. Then, when you are in game, you only load the selected parts, so, like 5 meshes, instead of 500 meshes. For this you could make an scriptable object with a list of addressable asset paths for each body part and then load the saved indexes. And on the character customization screen you can pre load all the assets and unload when the player exits
Yup correct they are all loaded in memory, in my case since this is a PC game and the meshes are low poly I didn't worry about it, but yes if you are making a mobile game where you are heavily memory limited then yup addressables would be the right way to do it to make sure it only loads what is needed.
Got the pack on sale, cannot wait to try it out, aldo I first need to figure out why are my meshes and prefabs all purple and don't render. Something seems worng with materials - don't load. what am I missing?
@@CodeMonkeyUnity yes, the team that made the asset helped me alot. Great team great asset, also thank you so much again for all the help you provided. I've started my own first game now using the logic you have teached me from your singleplayer tutorial and managed to set my baseline and half my core logic. Now it gets tricky because I need to figure out how to implement alot of new stuff but its fun. Done with player input and npc random movement aswell with the visuals, now the rest of core mech and once I am done with singleplayer I will go do your multiplayer game and refactor it for multiplayer. Again, thanks alot, I feel like if I ever start making money this way I will subscribe to every single thing you have XD
There are two things I want to ask, why did you put the BodyPart class array in the script rather than making it a scriptable that would be way more cleaner and would separate all the data and also if you put the string name in the bodypart class it will replace the Element 0,1,2 things just for visibility it would be nice even if you don't use it. Secondly, in the UI part I like the part that you are separating everything and using is the Single Responsibility from the SOLID but you can make it more Lossly Coupled by using an Event Manager that will subscribe all the things that need to be changed on Click and invoke it on the UI Script that will make the UI more cleaner but just my opinion you are the Master when it comes to Game Dev and really happy to be part of your journey and hope this will inspire me too to put my projects out there one day.
Just because I only ever use this data in the player prefab so there was no need to put that data in a scriptable object, although sure you could do that if you wanted to. What you are describing could indeed be done and may improve the readability of this system by about 10%. But always ask yourself, what is the main goal? IF the goal is character customization then do that and don't get stuck in a never ending loop trying to overoptimize every single part of a system. Clean code is absolutely awesome and something I love, but do be careful not to become so obsessed to the point where you never actually complete anything.
@@CodeMonkeyUnity This is exactly why I said you are the master when it comes to this stuff you are practical and way more knowledgeable, I really love what you said and definitely sticking to point is more productive. Also everytime I watch your videos there is something always new to learn like the % mod sign to go back to zero that was epiphany moment and the index.array to check which mesh is at what array number that was genuinely interesting and I really wanna try both of these things as much as I can so that it becomes second nature to use.
Should have used scriptable objects for data storing, they can split data & logic & also they are serialized by default so storing it would be easy. Also if you wanted to add customization to new part of character you just create a new scriptable object.
Hi I love your tutorial and recently downloaded and played Dinky Guardian, its a fantastic game. But I have 2 questions: 1. Was the dinky guardian developed using ECS ? 2. Will dinky guardian still growing ?
I didn't end up using ECS, I always thought about potentially using it but never encountered any performance issues. What do you mean by "growing"? Am I updating it? Yes I plan to continuously update the game over time
Thank you very much for the tutorial. It helped a lot and I understood everything. I just had a problem, I followed the tutorial step by step but in the Save part, which I've done and redone several times, I always get the same error and I can't understand why (I'm a beginner, sorry). Everything works fine, when I click the meshes change but when I press Save I get this error on the console: Click! Torso Button Click! Pants Button Save NullReferenceException: Object reference not set to an instance of an object What am I not doing right? Thanks and sorry for the trouble.
Thank you very much for this tip! I was able to understand what was wrong. The code was all right, the problem is that although I was following the tutorial, I changed it for my case and created the Enum with all the elements I would need but then I ended up not creating all the elements of the Body Part Data Array and so when I got to one of the ones that wasn't created, it was returning null. Beginner's mistake. Thanks again!@@CodeMonkeyUnity
@@CodeMonkeyUnity thanks a lot codemonkey! I also had an issue trying to show player names in game, I added a textmeshpro to the player visual and called get player name. The issue is players only see their names, even on other players name tags.
Yes, this is not intended to be hack proof at all. If you have something like microtransactions for your character customization then you should follow the usual rule of "never trust the client", so in that case customization should be stored/validated on a server
The mesh doesn't have colors, it has UVs, and different meshes have different UV values so they grab different parts from the texture You can see my video on Meshes to see how they work between vertices and uvs unitycodemonkey.com/video.php?v=11c9rWRotJ8
Not really, I can teach Unity because I've been using it for over 10 years, I wouldn't feel confident teaching another engine if I just started using it
This game engine is impressive and easy to use but after what they did in September about the new pricing model I don't trust this company and I'm afraid they will do this again. They lost a lot of trust and I don't know why they did it because it is illegal. Did they not have thinking minds there or was the previous CEO greedy?. Anyway I still don't trust this company
What is legal or not depends on which country you live in, so it’s difficult to say. Unity has been free for years and never charged dev studios before, but I guess they need money to keep developing the engine and since money don’t grow on the concrete they setup the strategy to make some. Actually they walk back from this price model because of people mass complaining about. And I guess people are struggling to understand this basic economic concepts where a business need money to research and develop a product. Actually if you are indi dev you can sell up to 200K copies of your game before get charged which is a lot of money, I would be more than happy personally to pay the tax after selling 200K x $25. Between, even unreal engine is not free and have some royalties in the end.
You know the point of making games isn't to make something YOU like ... or else it won't sell. The point is to make something MOST people enjoy ... DARK MODE. lol. Your personal preference doesn't matter when you're the teacher ... you teach how people learn. we've evolved beyond eye strain, we have dark mode now ... use it. lol. and you are NOT providing accessibility for your viewers who literally have scientifically valid vision disorders such as Contrast Sensitivity/Irlen Syndrome. But what the fuck do I know? half a million subs. Is anyone telling you to KEEP light mode?
It's not personal preference, I am physically incapable of using dark mode. My eyes start to burn and I get a massive headache after a few seconds. I am very committed to teaching and sharing my knowledge, but what you're requesting is physically impossible for me to do.
Dragging 100 hats into a script isn't hard actually, lock the inspector (little lock icon on the top right) to keep it focused on the script in question, then you can select all the assets you want, and drag them onto an array or list. Also, GetBodyPartData can be simplified with Linq, like so: return bodyPartDataArray.FirstOrDefault(bp => bp.bodyPartType == bodyPartType);
In this case that trick does not work because all the meshes are sub-objects of .fbx files, so the only way to select them is to expand fbx + select mesh + expand next fbx + select next mesh, etc Yup Linq can definitely be useful in this scenario
✅ Get the Project files and Utilities at unitycodemonkey.com/video.php?v=Cyq6mpY-ILA
🌍 Get the Characters Pack cmonkey.co/characterspack_charcustom
🔴 Get the Synty Characters cmonkey.co/synty_modularfantasy_charcustom2
🎮 Play my Steam game! cmonkey.co/dinkyguardians
🔴 RELATED VIDEOS 🔴
How to do Character Customization! (4 Methods, Unity Tutorial for Beginners) ruclips.net/video/nSmEirb8JGM/видео.html
Why you should NOT make everything PUBLIC! ruclips.net/video/pD27YuJG3L8/видео.html
What are Delegates? (C# Basics, Lambda, Action, Func) ruclips.net/video/3ZfwqWl-YI0/видео.html
Simple Saving and Loading with JSON to a File (Unity Save System Tutorial for Beginners) ruclips.net/video/6uMFEM-napE/видео.html
How to Save File with Screenshot! (Save System Unity Tutorial) ruclips.net/video/dqySkMFieHE/видео.html
I'm adding this to the (long) list of tutorials I'd like to follow :) Thanks for taking the time to show how you did it in your own game!
The main reason for me that this channel is best - i can check project files, not just watching video. Thank you sir!
I hope they help! Thanks!
17:54 Just in case you didn't know: You can drag and drop a whole selection of selected objects into such a serialized array, you just have to drop them on the name of the variable, not on the actual list of elements. So selecting all hats and just dropping them on "Mesh Array" (rather than on "Element 0" should add them automatically to the array. There really is now reason to drag and drop references one by one into the inspector. But maybe I misunderstood you,
Cool video though, as always!
This is was my fear while watching video 😂, I was like hoping he didn’t actually drag every single one individually. You can lock the inspector too if you so it’s easier to select all objects, then drag them into inspector.
That trick is indeed great but does not work in this case because the Meshes are subobjects of the .fbx
If the asset pack was set up with one huge .fbx and inside it all the hat meshes then yup it would work, but each Hat is as a separate .fbx with a mesh inside it.
@@CodeMonkeyUnity In this case, you simply search for the hats in the project folder, with the type mesh “t:mesh hat”, then only the mesh’s of the hats will appears, then you can simply drag and drop them. Another method is to open the FBX sub object then select them manually there, then drag and drop.
Great video as always!
If someone doesn't know about @17:54 - You can drag many refs in one go if you drag them on a list header instead of individual fields.
Usually you can but not in this case because the Meshes are sub objects of the .FBX, if you drag multiple .FBX it won't automatically grab the child meshes
@@CodeMonkeyUnity Oh, I see, I didn't know that there are exceptions. Thanks!
Before I dive into this video, I'd like to highlight the specific requirements of my planned game's customisation functionality:
• being able to change "skins", which requires swapping out the skinned mesh of the character, or so I understand.
• being able to choose between "agile" and "noble" animation sets, or the equivalents thereof, which would require swapping out the animator controller, unless someone can suggest an alternative method (I specifically require that certain characters have one of the two animation sets as the default)
Nice! Just thought about adding customization to my game. THis will become handy! :) great Work, as always :)
Amazing, your content is top! IM near to finish the kaos kitchen tutorial! Thanks for all!
Nice! I hope you've learned a ton!
at 10:46 is there any benefit that I am missing to using a class over a struct? Awesome Tutorial! I am exited for more tutorials!
I really like it how you show how you had it in your finial game. I want to make tutorials on stuff but they turn out to be too long because I show how to do everything that I have it do in my games. If you do not mind I will start doing what you are doing to show the finial code. Thank you again for the tutorial!
@@theashbot4097make sure u know what ir copying
@@tiqosc1809 What? I do not understand you statement. if your saying "Make sure you know what code you are showing people to use" then yes I will do that. If you are saying "Make sure you know who I am copying" then I know I am copying a part of a format of a tutorial. I am trying to make tutorials about my own stuff and not trying to copy someone else tutorial.
@@theashbot4097 I mean make sure you understand the code before copying
@@tiqosc1809 Ya I normally try to watch a tutorial then try to make that same system myself so that I have a better understanding of what I am doing. Thanks for the tip!
hy, love your content and I was wondering if you could show us how you made outline/toon shader for your game dinky guardians. I feel like there aren't many good tutorials on shading and if there are their results (outlines) aren't usually that good.
In my case I just used an asset called Quibli
I believe Matt from the channel GameDevGuide recently made a shader tutorial on making a toon shader
Or you can look at Unitys Open Projects and see how they did their toon shader unitycodemonkey.com/video.php?v=3VnNBidNPM4
Another really useful video. Thank you ☺
By the way, New Jersey Transits operates a train called the 'Dinky'. It's a short spur branch railroad that operates from Princeton, NJ ( where Princeton University is located) several miles away to the main NorthEast Corridor railway that runs from Boston to past Washington, DC. It's like the I-95 of American rail.
heh thanks for the trivia! It's apparently the shortest rail line in the US, neat!
awesome your code quality is great
this seems pretty cool!
This is awesome. Thank you!!!
Seems there's no video from 5:00 until 5:04 nothing important, just weird
Strange, maybe premiere got a rendering bug? Totally missed it when I watched the video, probably because I watched it at 3x speed heh
Thank you for the guide! Got a small question: What happens when you add bodyparttype 1 (the hat) and index of 3 (the element when there is no mesh for the hat)? It returns 'bodyparttype: 1 and index: -1' for me, causing an index out of bounds when trying to load. Bit confused on how to fix this though. I'd expect the index to be 3, despite there being no mesh for the 3rd element.
Edit: One solution would be to add a mesh that holds no actual mesh just a skinned mesh renderer for each part, but that doesn't sound very elegant.
Wow this tutorial was great! Loved every minute of it and I understood all of it.
How do you think of coding in such a modular way? I always end up thinking I'm doing it the right way and then end up with spaghetti code xD
The answer is really just experience. I've been writing code for 25 years so by now my brain is already pretty good at looking at a codebase and seeing where I could improve.
Also remember refactoring is a normal part of the process, the class that I showed which is what I'm using in my game is NOT the class I started with. As always I write some code, try to write my first draft as good as possible, but I always refactor things when I see I could have done something better. So remember that code is flexible not fixed, so refactor when needed. Keep on learning!
Yeah, I've only been coding for a few years. Experience is key. Refactoring is always the most tedious part but I guess that's the only way to end up with good clean code. Thanks!
The asset package and the way the models are presented, which of the four Unity methods that you showed in your video do they correspond to?
Hello, and in the case of clothing, how do you solve it?
rly nice and clean ;)
Could loading the scene take some processing power for the save and load every time? I'm worried about loading times in unity. Currently building a 3d game but want full character customization.
Nice, ty!
Excelente tutorial, me gustó mucho.
amazing. thanks dude
Thank you for sharing another piece of your great knowledge!
Is this system suitable for my case, where I don't have to have a ton of customization, but my character will be getting upgrades to his suit, and I want to swap some suit parts around, but hopefully in a way that would not affect the skeleton and animations, just the look of it, the geometry?
Yup that would also work, although whether you use this mesh method or another method will depend on how your assets are set up. It sounds like you have them set up kind of like Prefabs instead of meshes, so you would do it like the third method I covered in the other char customization video unitycodemonkey.com/video.php?v=nSmEirb8JGM
@@CodeMonkeyUnity Oh wow, thank you for helping out with your advice! You're a legend :) I will save this and other video for future reference.
Would be awesome to implement different stats for each customization item like armor for torso parts and speed for leg parts
Behind the scenes, it is clear that the development of even a simple game is difficult...
It will be interesting to see other topics on the development of your game, if they are not covered yet...
I'm new to making games but i am a seasoned programmer. Sometimes i want to ask you a question but i have to wait until you release a new video so that gave me an idea to create a site where users (me) can pay you for live Q and A or tutoring or mentoring. Is this a good idea or do you think most indie devs such as yourself are too busy?
I used to have a Discord but I really couldn't keep up with it, especially because Discord is realtime. 1on1 tutoring would be a great idea but really don't have time for it.
Although lately once a month I started making a RUclips/Patreon member videos where people can ask anything about any topic and I'll try to help
Okay. Thank you@@CodeMonkeyUnity
I have a different character asset, when I try to swap a head for example, the mesh is invisible/disappears. Idk exactly. Is it due to how my asset pack is setup or could this be a general bug? What is the best way to set up such a 3D model in order to get this working
The head disappears? When doing what? Disabling some game object?
Different asset packs are set up in different ways so yeah the method will be slightly different ruclips.net/video/nSmEirb8JGM/видео.html
Perhaps in your case you just need to swap the material and not the mesh.
Is there a way possible I can get the entire Dinky Guardians template minus the protected parts? I ask because I have all your videos and stuff working but I can’t figure out how to put it all together. The Customizer with the Multiplayer
It's pretty much exactly like I did in my Kitchen Chaos multiplayer course ruclips.net/video/7glCsF9fv3s/видео.html
Dinky Guardians started from that codebase
And you can also download the project files for this one
You just need to synchronize the int indexes for the chosen customization
One thing that should be noted is that this implementations will make unity load all 100+ options of each body part meshes into memory whenever you load your character. I might be wrong, but that would be because you draged the reference of the assets directly. One way around this would be to load them as an Addressable asset. Then, when you are in game, you only load the selected parts, so, like 5 meshes, instead of 500 meshes.
For this you could make an scriptable object with a list of addressable asset paths for each body part and then load the saved indexes. And on the character customization screen you can pre load all the assets and unload when the player exits
Yup correct they are all loaded in memory, in my case since this is a PC game and the meshes are low poly I didn't worry about it, but yes if you are making a mobile game where you are heavily memory limited then yup addressables would be the right way to do it to make sure it only loads what is needed.
Got the pack on sale, cannot wait to try it out, aldo I first need to figure out why are my meshes and prefabs all purple and don't render. Something seems worng with materials - don't load. what am I missing?
Ah found it. Shader - DummyPipeline
Yup pink means shader error, so just use the Render Pipeline converted to convert the materials from BiRP to URP
@@CodeMonkeyUnity yes, the team that made the asset helped me alot. Great team great asset, also thank you so much again for all the help you provided. I've started my own first game now using the logic you have teached me from your singleplayer tutorial and managed to set my baseline and half my core logic. Now it gets tricky because I need to figure out how to implement alot of new stuff but its fun. Done with player input and npc random movement aswell with the visuals, now the rest of core mech and once I am done with singleplayer I will go do your multiplayer game and refactor it for multiplayer. Again, thanks alot, I feel like if I ever start making money this way I will subscribe to every single thing you have XD
Can you make a dedicated video about skinned mesh renderer?
What do you mean?
My materials were greyed out when entering play mode
It would be nice if the user interface had an items preview instead of only a left and right toggle
Yup that would be a great addition to this system, could be done with some render textures unitycodemonkey.com/video.php?v=tJ_ycboPFmY
There are two things I want to ask, why did you put the BodyPart class array in the script rather than making it a scriptable that would be way more cleaner and would separate all the data and also if you put the string name in the bodypart class it will replace the Element 0,1,2 things just for visibility it would be nice even if you don't use it. Secondly, in the UI part I like the part that you are separating everything and using is the Single Responsibility from the SOLID but you can make it more Lossly Coupled by using an Event Manager that will subscribe all the things that need to be changed on Click and invoke it on the UI Script that will make the UI more cleaner but just my opinion you are the Master when it comes to Game Dev and really happy to be part of your journey and hope this will inspire me too to put my projects out there one day.
Just because I only ever use this data in the player prefab so there was no need to put that data in a scriptable object, although sure you could do that if you wanted to.
What you are describing could indeed be done and may improve the readability of this system by about 10%. But always ask yourself, what is the main goal? IF the goal is character customization then do that and don't get stuck in a never ending loop trying to overoptimize every single part of a system.
Clean code is absolutely awesome and something I love, but do be careful not to become so obsessed to the point where you never actually complete anything.
@@CodeMonkeyUnity This is exactly why I said you are the master when it comes to this stuff you are practical and way more knowledgeable, I really love what you said and definitely sticking to point is more productive. Also everytime I watch your videos there is something always new to learn like the % mod sign to go back to zero that was epiphany moment and the index.array to check which mesh is at what array number that was genuinely interesting and I really wanna try both of these things as much as I can so that it becomes second nature to use.
How to get mobile device's physical volume value
Should have used scriptable objects for data storing, they can split data & logic & also they are serialized by default so storing it would be easy. Also if you wanted to add customization to new part of character you just create a new scriptable object.
Sure you could do that, in my game I just made the character visual a prefab with the customization script which is separated from the player logic
would it be possible to save and load using the unity cloud save??
Yes, instead of saving onto PlayerPrefs or a file you could save on Cloud Save
Hi I love your tutorial and recently downloaded and played Dinky Guardian, its a fantastic game. But I have 2 questions:
1. Was the dinky guardian developed using ECS ?
2. Will dinky guardian still growing ?
I didn't end up using ECS, I always thought about potentially using it but never encountered any performance issues.
What do you mean by "growing"? Am I updating it? Yes I plan to continuously update the game over time
@@CodeMonkeyUnity Thank you, since the game suits my type and your tutorial, hope that it goes well with Dinky Guardian
Thank you very much for the tutorial. It helped a lot and I understood everything.
I just had a problem, I followed the tutorial step by step but in the Save part, which I've done and redone several times, I always get the same error and I can't understand why (I'm a beginner, sorry).
Everything works fine, when I click the meshes change but when I press Save I get this error on the console:
Click!
Torso Button
Click!
Pants Button
Save
NullReferenceException: Object reference not set to an instance of an object
What am I not doing right? Thanks and sorry for the trouble.
Use Debug.Log to find out what is null unitycodemonkey.com/video.php?v=5irv30-bTJw
Thank you very much for this tip! I was able to understand what was wrong. The code was all right, the problem is that although I was following the tutorial, I changed it for my case and created the Enum with all the elements I would need but then I ended up not creating all the elements of the Body Part Data Array and so when I got to one of the ones that wasn't created, it was returning null. Beginner's mistake. Thanks again!@@CodeMonkeyUnity
Could you please explain how to make it work with multiplayer? I just finished the course and i'm finding it difficult to make it work.
You would just synchronize the index of whatever mesh was selected, exactly the same way as how in the course an index was synchronized for the color.
@@CodeMonkeyUnity thanks a lot codemonkey!
I also had an issue trying to show player names in game, I added a textmeshpro to the player visual and called get player name.
The issue is players only see their names, even on other players name tags.
Wouldn't the player be able to change the equipment from outside the game if he changes the json?
Yeah they would
Yes, this is not intended to be hack proof at all. If you have something like microtransactions for your character customization then you should follow the usual rule of "never trust the client", so in that case customization should be stored/validated on a server
How come mesh has color by itself? I wish you had explained it more, I think it's uncommon practise compared to changing material.
The mesh doesn't have colors, it has UVs, and different meshes have different UV values so they grab different parts from the texture
You can see my video on Meshes to see how they work between vertices and uvs unitycodemonkey.com/video.php?v=11c9rWRotJ8
Would this also work for a 2d game?
Sure, except instead of swapping meshes you would swap Sprites, although it also depends on how your character are set up
@@CodeMonkeyUnity I'm setting up using 2d bone rigged sprites
still Waiting for the Cut Scenes Tutorial 😁
It's one of the many many things on my to-do list!
It would be a big time saver if Unity added a built in C# script editor like Godot for GDscript!
Bro can you make a unreal engine game Development course
Not really, I can teach Unity because I've been using it for over 10 years, I wouldn't feel confident teaching another engine if I just started using it
First ❤
I am flash
This game engine is impressive and easy to use but after what they did in September about the new pricing model I don't trust this company and I'm afraid they will do this again. They lost a lot of trust and I don't know why they did it because it is illegal. Did they not have thinking minds there or was the previous CEO greedy?. Anyway I still don't trust this company
What is legal or not depends on which country you live in, so it’s difficult to say.
Unity has been free for years and never charged dev studios before, but I guess they need money to keep developing the engine and since money don’t grow on the concrete they setup the strategy to make some. Actually they walk back from this price model because of people mass complaining about. And I guess people are struggling to understand this basic economic concepts where a business need money to research and develop a product.
Actually if you are indi dev you can sell up to 200K copies of your game before get charged which is a lot of money, I would be more than happy personally to pay the tax after selling 200K x $25.
Between, even unreal engine is not free and have some royalties in the end.
You know the point of making games isn't to make something YOU like ... or else it won't sell. The point is to make something MOST people enjoy ... DARK MODE. lol. Your personal preference doesn't matter when you're the teacher ... you teach how people learn. we've evolved beyond eye strain, we have dark mode now ... use it. lol. and you are NOT providing accessibility for your viewers who literally have scientifically valid vision disorders such as Contrast Sensitivity/Irlen Syndrome.
But what the fuck do I know? half a million subs. Is anyone telling you to KEEP light mode?
It's not personal preference, I am physically incapable of using dark mode. My eyes start to burn and I get a massive headache after a few seconds.
I am very committed to teaching and sharing my knowledge, but what you're requesting is physically impossible for me to do.
When there is chatgpt, code monkey is no longer needed
And yet, for some reason you are still here commenting under his videos....
Nice bait.
And you're still there!
Dragging 100 hats into a script isn't hard actually, lock the inspector (little lock icon on the top right) to keep it focused on the script in question, then you can select all the assets you want, and drag them onto an array or list.
Also, GetBodyPartData can be simplified with Linq, like so:
return bodyPartDataArray.FirstOrDefault(bp => bp.bodyPartType == bodyPartType);
In this case that trick does not work because all the meshes are sub-objects of .fbx files, so the only way to select them is to expand fbx + select mesh + expand next fbx + select next mesh, etc
Yup Linq can definitely be useful in this scenario