Assembly Definitions in Unity

Поділитися
Вставка
  • Опубліковано 26 лис 2024

КОМЕНТАРІ • 216

  • @chrisc7265
    @chrisc7265 4 роки тому +418

    I don't even use Unity, I just like hearing this guy be nice to himself

    • @xskybirdx
      @xskybirdx 2 роки тому +21

      yeah seriously! it's a bizarre format and I love it

    • @0xF81
      @0xF81 Рік тому +1

      Lmao

  • @benjamingerd4703
    @benjamingerd4703 3 роки тому +27

    Thank you kindly! This has helped me reduce my game's compile time from "This takes so long, I don't enjoy working on this game anymore" back to "This is so much fun again, just like back in the old days when my project used to be small".

  • @TheLazyEngineer
    @TheLazyEngineer 4 роки тому +39

    we're lucky that Charles is so nice and didnt just say "ok" at 0:23 causing the vid to end!

  • @keyay1239
    @keyay1239 4 роки тому +39

    Oh man, this format really skyrockets the entertainment of your video. While it is still a tutorial, it doesn't bore me at all, maybe actually the opposite.
    Really a genius idea to keep the viewer attracted.

  • @lobsangwhite
    @lobsangwhite 4 роки тому +20

    This is my style of programtion, first I talk to myself helping me to answer all my questions and keep me in company all the process... later we both start crying about all that messy code and our loneliness. It's beautiful.
    Btw, I love this tutorial ❤

    • @lobsangwhite
      @lobsangwhite 4 роки тому

      I was thinking, what about this third-party code? I mean, I use a lot Leantween but if I put my UI scripts into an assembly leantween stay into the default assembly and it's not possible to make a dependency. Or am I wrong?

  • @In-N-Out333
    @In-N-Out333 4 роки тому +260

    Another episode of 'The Schizophrenic Programmer'.

    • @InfallibleCode
      @InfallibleCode  4 роки тому +30

      🤪

    • @RyRyQTPi
      @RyRyQTPi 4 роки тому +7

      I loved this video. Short and informative. Also very entertaining to watch haha 😅👌

    • @peterhayman
      @peterhayman 4 роки тому +12

      Me: Yea should I be worried if I start talking to myself like this?
      Other Me: Not at all! The technique of projecting inner monologues onto dialogues between 'make-believe' characters is ancient and used by the likes of Plato in his dialectics.

  • @fawazaljohani8447
    @fawazaljohani8447 4 роки тому +46

    Dude, this is hands down one the best tutorial videos out there, not just about the subject, the way you present and explain the tutorial is super creative and even though I just watched the video cuz i saw it in the subscription tab and wasn't really interested in the subject, I completed the whole thing, RING BILL IS ON FROM NOW ON

  • @di4352
    @di4352 2 роки тому +1

    What a satisfyingly casual and straight-forward conversation about code organization in Unity between two pleasant and completely unrelated individuals :D.

  • @samwholearns3023
    @samwholearns3023 2 роки тому +6

    You and the 2 Jsons are fucking amazing. I have gone from zero to hero in around 4 months with 3 projects due to the content each of you puts out regarding code, architecture and best practices. Man I can't believe how far I have come this fast.
    Still a beginner but I am now helping other beginners and I can see that I am dipping my toes regularly into the intermediate waters. The Journey amazing. Sometimes I get goosebumps when I am coding and I realize I did something organically that I saw when I was brand new and had no idea what was going on.

  • @fulongfromthegrave
    @fulongfromthegrave 4 роки тому +25

    I think the vids fill two puposes: teach you awesome code, while serving as PSAs on how to treat colleagues at the office (how to ask for/offer help to a colleague). xD

  • @hanzhang4592
    @hanzhang4592 3 роки тому +11

    This form of explanation is so cool, I am feeling like you ask every question that I care about!!!

  • @VioletteValkyria
    @VioletteValkyria 4 роки тому +75

    Man, you really are getting lonely during the lockdown, making Skype calls with yourself like that!

  • @rxninja
    @rxninja Рік тому

    I just want to say that this is the first tutorial I haven't watched on greater than 1.0x speed in a very, very long time. Everything was clear and concise. Thank you!

  • @MaxKearneyFilms
    @MaxKearneyFilms 3 роки тому +2

    this kind of format usually is pretty cringe but this was super helpful to understanding assembly definitions. The guy with the cap asks all the questions I would want to ask haha, thanks a bunch

  • @AvoidingCrisis
    @AvoidingCrisis 4 роки тому +1

    Why is this format so soothing and entertaining?? Such an amazing idea

  • @marche4ever
    @marche4ever 3 роки тому +10

    I would love to see a video on how to design good assembly definitions for games. This is one of those things where I know what it is, what it's used for, but not sure how to utilize it properly in a real-world setting.

    • @LautaroArino
      @LautaroArino 2 роки тому +4

      I know this is old but here is something i learned. One of the reasons this method is helpful is when you realise you need to sit down and thing about what your project needs and how you would structure the different subsystems. If you cant figure it out maybe you just need to try and then learn from mistakes? After a few projects you will have a clear feeling about how you wished you would have done from the beginning. So think about these techniques but dont let it keep you from progressing as a game coder! ITs possible to stay in the system design phase for ever and thats not productive either.

  • @betterlifeexe4378
    @betterlifeexe4378 3 роки тому +3

    I literally just pulled up that page in the beginning and said in my head, "this is confusing" , then went on youtube and searched assemblies in unity and got this video.

    • @InfallibleCode
      @InfallibleCode  3 роки тому

      Did the video clear up your confusion?

    • @betterlifeexe4378
      @betterlifeexe4378 3 роки тому

      ​@@InfallibleCode yep, what I really wanted to know is what the default assembly Included and you pointed it out in the solution explorer. I wanted to know because internal is scoped to the assembly, and in order to use it intelligently, I had to know what that scope included.
      Would I be right in guessing that internal is fairly secure so long as your app isn't exposed directly to something like code injection? Does it protect against window hooks? I still have security questions.

  • @alexbrandt
    @alexbrandt 2 роки тому

    Man, this format is a great way to go through a topic like this. I work in simulation and have a ton of calls like this about complicated topics, but mine come with interruptions, dead ends that the person might not be knowledgeable about, and other tangents. This really takes a conversation like that and cuts out the useless info to deliver the information in a way that is conversational, easy to digest, and to apply to your work. Well-earned sub, awesome content.

  • @danigarciafernandez8908
    @danigarciafernandez8908 3 роки тому +2

    Just found your channel while researching about Unity's assembly definitions. Quite an original and clear way to explain the topic. Great video!

  • @shubhamsati3145
    @shubhamsati3145 2 роки тому

    Man your way of teaching is refreshing. I really love it.

  • @truthByFire
    @truthByFire 4 роки тому +13

    Love these tutorials - great style and easy to follow

  • @Pojath
    @Pojath 2 роки тому

    This guy needs more subscribers. Thanks for explaining everything in an easy manner to understand!

  • @kirbymia6209
    @kirbymia6209 3 роки тому

    This guy's channel really shows how helpful programmers should be to each other.

  • @Socom.x
    @Socom.x 9 місяців тому

    Great explanation thank you. And I liked your approach showing 2 sides to this conversation. When I was a Junior coder I found it intimidating to ask these sorts of questions but they are very important and just like in your video 9 times out of 10 the other person or code lead will take time out of their day for you. Iv worked in the games industry for 5 years now and only just discovered Assembly Definitions. Subbed to your channel :)

  • @lemetamax
    @lemetamax 5 місяців тому

    This is really cool! I'll start using assemblies from now on.

  • @maolin7552
    @maolin7552 Рік тому

    Man you are really making GREAT tutorial video!!! THANK YOU.

  • @moose43h
    @moose43h 4 роки тому

    bro this is relaxing af because its not robotic

  • @isaacwolf4969
    @isaacwolf4969 2 роки тому +1

    These tutorials are awesome

  • @auckzsv8599
    @auckzsv8599 4 роки тому

    You managed to create a simple and fun tutorials for subjects i never wanted to encounter. (mainly unit testing)
    Your videos have next level production value.
    you can easily become a top player in this platform.
    Thanks for the help!

  • @Tastygraph
    @Tastygraph 4 роки тому

    Most important lesson learned from this video is that you should not judge a book by its cover... People with reverse-caps can still be knowledgable and great teachers! I should tell my boss! 🤓😎

  • @_GhostMiner
    @_GhostMiner 2 місяці тому

    Very interesting stuff. Surely will come in handy when making a project.

  • @adamodimattia
    @adamodimattia 4 роки тому +1

    Love your videos, also very nice is this format of dialog with yourself, cool.

  • @omegaomega6838
    @omegaomega6838 2 роки тому

    I can tell you worked hard on this. Thanks, so much for this video. I actually learned about assemblies thanks to you. Keep it up.

  • @MohammadFaizanKhanJ
    @MohammadFaizanKhanJ 3 роки тому

    Thanks again to you both digital twins.

  • @RicardoEP
    @RicardoEP 2 роки тому

    Had no idea what i was getting into listening to this converzation kinda tutorial. But damn I loved every bit of it.

  • @TheIndieProject
    @TheIndieProject 2 роки тому

    Thank you for this awesome tutorial! Interesting, non standard topic and one of the best ways to teach it I‘ve ever saw. Thumbs up!

  • @castlecodersltd
    @castlecodersltd 5 місяців тому

    A great explanation. Thank you 🙂

  • @qzzf1w
    @qzzf1w 2 роки тому

    Very effective communication style

  • @interstellar1798
    @interstellar1798 4 роки тому +1

    what an amazing style, thanks for the tutorials.

  • @absolutedogy346
    @absolutedogy346 4 роки тому

    I am in love with your style of presenting, giving me so much inspiration to start a series like this myself to help pass on some of my knowledge! keep up the good work man

  • @lucasmontec
    @lucasmontec 4 роки тому +1

    fyi, youre the best unity youtuber out there (for coders).

  • @halivudestevez2
    @halivudestevez2 2 роки тому

    Wow! To the point! Really helpful!

  • @gamedev131
    @gamedev131 4 роки тому

    You deserve 100K subscribers! I am happy to discover this channel :)

  • @IndritVaka
    @IndritVaka 2 роки тому

    Amazing tutorial, I love it Thanks!

  • @lewaplay
    @lewaplay 2 роки тому

    Very delgant explanation, thanks :)

  • @3dhex475
    @3dhex475 4 роки тому

    Just got yourself a new fan!

  • @judgegroovyman
    @judgegroovyman 4 роки тому +3

    These videos should be shown in psychology classes. “How to treat yourself with respect and kindness”. This is how our inner dialogue should be.

  • @makra2077
    @makra2077 4 роки тому +9

    Always love your intuitive approach to making tutorials sir 🔥 I try making videos like you for my channel but eventually fail. Can you please give me some tips sir

    • @someoneontheinternet3090
      @someoneontheinternet3090 4 роки тому +1

      First figure out what you want to teach. Research it if need be. Write a script so that you know exactly what you are going to say. Try to imagine one character as a know nothing noob like myself and the other as the all knowing Guru. Have the guru explain and the know nothing ask questions that real noobs might ask.
      One place I don't feel this channel goes far enough is in trying to remember what it's like to not know the lingo or the process of making games or programs. But then, maybe it's not supposed to be for people who don't even know that much.
      For example, I now know how to make assemblies in Unity but I don't really know why. He says it's for organizing and optimization, and I get the optimization part because it will only recompile the assemblies that have changed saving time, but I'm not sure how it organizes anything.

    • @makra2077
      @makra2077 4 роки тому +1

      @@someoneontheinternet3090 thanks a lot sir! Will definitely try this

    • @someoneontheinternet3090
      @someoneontheinternet3090 4 роки тому

      @@makra2077 You're welcome! Good luck!

  • @racrity
    @racrity 3 місяці тому

    Aweeeeeeeeesome video! Thanks a lot. Really funny to watch as well lol

  • @shieldgenerator7
    @shieldgenerator7 Рік тому

    6:42 thanks! that was the missing piece that i needed

  • @honeybee6978
    @honeybee6978 4 роки тому +1

    You look so natural with coding. Did you ever had a time where you also make beginner mistakes? (Like I do everyday)

  • @Ivaseg
    @Ivaseg 2 роки тому

    Great tutorial! Thank you :)

  • @RimuruGameDev
    @RimuruGameDev 3 роки тому +3

    Великолепно! Большое спасибо за урок.

  • @istanbulludeveloper
    @istanbulludeveloper 7 місяців тому

    very great tutorial, thanks!

  • @АлексейНикитин-й1з
    @АлексейНикитин-й1з 4 роки тому +1

    Спасибо! Обожаю ваши видео!!!

  • @Sovreighn7
    @Sovreighn7 4 роки тому

    Man, Charles is the best! - Barles

  • @JoePShoulak
    @JoePShoulak 2 роки тому +1

    So if it's overkill to use an assembly in every name space, how do we differentiate between when we should and should not give a namespace its own assembly?

  • @morganjames8626
    @morganjames8626 4 роки тому

    Very cool thanks for the clear explanation!

  • @aoiti
    @aoiti 2 роки тому

    So clear. Thank you

  • @daslolo
    @daslolo 4 роки тому +6

    "hey man, I heard you talked about fight club, not cool"

  • @teh1archon
    @teh1archon 4 роки тому

    I really love these tutorials with crossovers with other developers. Even if the other developer is also you ;)

  • @cuttlas2955
    @cuttlas2955 4 роки тому

    Very usefull video thank u Infallible Code

  • @fangyechannel
    @fangyechannel 4 роки тому

    love the shared knowledge point and this sharing method :)

  • @akisey1
    @akisey1 4 роки тому

    Another excellent video, thanks!

  • @AdrianCChase
    @AdrianCChase 3 роки тому

    This is amazing! Great job explaining it! Way better than unity's reference.

  • @ananttheant
    @ananttheant 4 роки тому

    Great as always!

  • @OiskiPoiskiDK
    @OiskiPoiskiDK 4 роки тому +2

    Hmm. Interresting video!
    Didn't know Unity had that feature.
    I've been working witj .DLL files for while, though 👍

  • @Director414
    @Director414 5 місяців тому

    awesome tutorial but it would be nice with some more in depth info about potential problems and general workflow on how and when to use these. Many thanks for your great videos, you rock! :)

  • @joeyninteen175
    @joeyninteen175 11 місяців тому

    Awsome tutorial.

  • @noumankhan167
    @noumankhan167 4 роки тому

    Great video man

  • @ACatWithACrown
    @ACatWithACrown 4 роки тому

    bruh, best gimmie that spotify playlist

    • @ACatWithACrown
      @ACatWithACrown 4 роки тому

      oh nevermind...that was pretty straight forward haha

  • @aidev1905
    @aidev1905 3 роки тому

    Aww hell yeah libraries in Unity!

  • @TedThomasTT
    @TedThomasTT 4 роки тому

    These videos are so good dude

  • @PiPiCatStudio
    @PiPiCatStudio 4 роки тому

    nice and clear!!! thank you

  • @haboychan
    @haboychan 2 роки тому

    thank you! good tutorial

  • @EisentoastDaReal
    @EisentoastDaReal 4 роки тому

    Very helpful dude

  • @alexspeleers
    @alexspeleers 4 роки тому

    YEAS - was thinking why I can't define my custom class in downloaded assets, and you helped me (:

  • @22hundo73
    @22hundo73 4 роки тому +1

    The one with the backwards cap is definitely the evil one!

  • @JonTopping
    @JonTopping 2 роки тому

    I'm still having so much trouble with this stuff, but the main reason is that I'm using someone else's code. They have put things into namespaces, like you're recommending. The problem is, that creates boundaries that are annoying. So for example, there's a script where the whole thing is in a namespace (I see it in the coding), and while I'm in that script there is a raycast, and I want it to send information from that raycast to another script (the raycast is a bullet, I want to adjust the HP of the object it's hitting). I do a normal getcomponent for the script on the object being hit, but I get this.
    The type or namespace name 'BodyPartId' could not be found (are you missing a using directive or an assembly reference?)
    It seems strange to me, because I can understand there being a problem if another script is trying to access stuff in a namespace (which I believe you can just define the namespace before the getcomponent to fix that), but here, I'm trying to access something completely open and normal, and it's not letting me, because I'm within a namespace.
    How do I fix that problem? I've been told doing stuff with the assembly definitions would help, but I don't totally understand what's happening here.
    Thanks for any help you can provide!

  • @kulak8548
    @kulak8548 3 роки тому

    great video, thanks!

  • @benayamanuel
    @benayamanuel 4 роки тому +1

    What code editor is that ? Never see that tbh, and if you mind what font youre using ? Kinda elegant

    • @InfallibleCode
      @InfallibleCode  4 роки тому +1

      The code editor is called Rider and the font is called Victor Mono:D

    • @benayamanuel
      @benayamanuel 4 роки тому

      @@InfallibleCode cool ! Btw, thankyou so much for your content. Really helpful for me. Youre awesome :D

  • @sundusalharbi5713
    @sundusalharbi5713 2 роки тому

    Great, many thanks

  • @blocbonbon
    @blocbonbon 4 роки тому

    The content was gold! However, although I'm highly impressed by your acting skills, I still thought it was a little cheesy to do it like this :D But I guess some others really liked it so oh well! I can live with it because the content and structure is very good otherwise ;)

  • @DevDunkStudio
    @DevDunkStudio Рік тому

    Great video!

  • @ruchirraj5300
    @ruchirraj5300 4 роки тому +2

    Can you make some videos covering Advance topics in DOTS?

  • @Kaldrin
    @Kaldrin Рік тому

    Really clear tutorial thank you, however I can't seem to get rid of the errors by putting a reference to my core assembly (which now holds the rest of the scripts), there seems to be a bigger issue at hand

  • @lukastomasek8038
    @lukastomasek8038 4 роки тому

    Great video I’ve Always got confused about assembly definition

  • @KyryloVesna
    @KyryloVesna 3 роки тому

    yo dude, this is great

  • @scottcorbitt4543
    @scottcorbitt4543 Рік тому

    I want this dude's coding music playlist lol, I can't find it on Spotify! But I love that it has Griz

  • @QingYuMu-v7n
    @QingYuMu-v7n 9 місяців тому

    Very Good!

  • @garrettguillotte4925
    @garrettguillotte4925 4 роки тому +1

    Can you reuse the DLLs generated as assemblies in other Unity projects, without needing to also copy their source into the new project? For instance, could you add the Core.dll file from this example as a managed plug-in to a new project, and then use the classes and functions within it?

    • @fmproductions913
      @fmproductions913 4 роки тому

      Should work. Usually you would put those dlls into the Plugins folder - and there should be no dependencies in the assembly that you forgot to include (like linking to other dlls that you haven't imported)
      connect.unity.com/p/move-plugin-code-to-plugins

    • @ttocskcaj
      @ttocskcaj 4 роки тому

      If you're going to share them across multiple projects, I would keep it completely separated so it's not strongly tied to any one project. You can just create a C# "class library" project in visual studio and then when you compile it, copy of the dll file to the unity projects that need it (or set up visual studio to automatically copy the dll file).
      If your dll is in your unity project file, you should automatically be able to reference it.
      You're essentially creating your own kind of private asset store asset

    • @MarekNijaki
      @MarekNijaki 4 роки тому +2

      @@fmproductions913 Very usefull link. Thx mate for sharing !

  • @XMannilieXAceX
    @XMannilieXAceX 4 роки тому

    What font are you using in your editor?? It's so amazing!!

  • @undisputed7872
    @undisputed7872 4 роки тому

    Bro which one u r using visual studio or visual code?
    iam trying to follow your videos but i cant see any of those setting in either visual studio or in visual code
    can u please tell me what u use that will be help full for like beginners
    thank you

  • @aknerkan3428
    @aknerkan3428 3 роки тому

    Life saver!

  • @MohamedOsamaBackrockStudios

    A valuable video

  • @hasanabdalla7102
    @hasanabdalla7102 Рік тому

    Amazing video, however I am having a small problem, once I added an assembly definition to my folder, the scripts in that folder could no longer find any of the classes in the UnityEngine assembly, when I tried to add references I was able to find stuff in the list like such as UnityEngine.UI, but not UnityEngine itself, and now those scripts cannot find things like monobehaviour and the GameObject class... Any idea on how to fix this?

  • @AlexTheProMacGamer
    @AlexTheProMacGamer 4 роки тому +1

    Hi, thanks for this video, it definitely help to grasp this stuff. But there are still some things confusing to me. How should I deal with packages? I have TextMeshPro installed (among others) that cannot be found anymore as soon as I setup an Assembly Definitions in my Scripts folder. TMPro already provides its own assemblies that can be referenced, but it is not the case for all packages. What can I do to solve this problem?
    Hope that someone can help.

    • @alexjchn
      @alexjchn Рік тому

      hello man I have the same problem, I spend some hours trying to get it but yet nothing, was three years ago this comment so i think that you can help me

  • @uchihai_a_h4871
    @uchihai_a_h4871 4 роки тому +1

    I thinks it helps in patching as well and shorter updates.... :)

  • @prdevstudio2538
    @prdevstudio2538 4 роки тому

    Thank you for this helpful Video.
    But what are you doing with imported packages which are belonging to the csharp assembly? As far I could see, I can not set up a dependency to this assembly!?

  • @faythe03
    @faythe03 4 роки тому +1

    Can somebody explain in more detail to me? If we look at the video example, it is said that adding definitions for all your namespaces would be bad, so what is that benefit to having definitions for core & interactables vs not having at all?

    • @crazyfox55
      @crazyfox55 4 роки тому

      If you make a change in the core library then all assemblies that depend on it will also get compiled. If you make a change in the interactables then only it will be compiled. It also causes your code to specifically list each dependency, which makes it more obvious when two things are tightly coupled. You don't want too many because its just tedious to manage all of the dependencies. As a common rule I would suggest staying away from creating dependencies that are more than 3-4 layers deep. aka avoid something that depends on something depends on something that depends on interactables that depends on core this is 5 layers deep making it hard to reason about which layer to add new code to. You'll end up with similar spaghetti dependencies.

    • @ttocskcaj
      @ttocskcaj 4 роки тому

      To use an example from the video, it's fine to reference Core from Interactables, but you wouldn't want Core to reference Interactables. Although it is completely up to you, the name core implies that it really shouldn't have anything to do with interactables.