Intro to Tool Dev in Unity [part 2/4]

Поділитися
Вставка
  • Опубліковано 9 тра 2024
  • 🔽 click for timestamps & info!
    part second! this was originally streamed as a course for students at futuregames.se/, who were super kind to let me both stream this live as well as upload it here! so massive thanks to the people at FutureGames!!
    💖 Patreon ❱ / acegikmo
    🐦 Twitter ❱ / freyaholmer
    📺 Twitch ❱ / acegikmo
    💬 Discord ❱ / discord
    🌸 Instagram ❱ / freya_holmer
    0:00:00 - Intro (Twitch Partner Chatting)
    0:01:32 - Changing Grid Size
    0:12:21 - Drawing a Cartesian Grid
    0:30:39 - Gizmo Selection
    0:35:06 - UI Events
    0:37:17 - Tool Dev Tip: Read Unity's Source
    0:43:13 - Position Handle
    0:49:41 - Drawing a Polar Grid
    1:19:33 - Snapping to a Polar Grid
    1:38:55 - Saving Data Between Sessions
    1:46:50 - Saving In Files
    1:54:52 - Making a Prop Placement Tool
    2:00:39 - Setting up the Editor Window
    2:05:55 - Scene View Raycasting
    2:12:04 - Spawn Radius, Count & Repaint Caveats
    2:18:03 - Random Points in Disc
    2:39:06 - What is Tangent Space?
    2:47:42 - Cat Ears
    2:48:35 - Design Patterns Rant
    2:51:38 - Spawn Count Refresh
    2:53:13 - Range Limiting
    2:58:12 - Raycasting Points to Surface
    3:05:51 - UI Deselection & Mouse Events
    3:09:37 - Raycast from Cursor in Scene View
    3:13:48 - Mouse Wheel to Change Radius
    3:24:27 - Modifier Keys, Bitfields & Enum Flags
    3:37:44 - Assignments!
    3:41:32 - Making the Circle Match the Ground
    3:51:59 - Outro
    3:53:29 - Bad Teacher
  • Наука та технологія

КОМЕНТАРІ • 42

  • @chandlerlane1599
    @chandlerlane1599 3 роки тому +25

    The one person who disliked this works at Unreal

  • @acegikmo
    @acegikmo  4 роки тому +16

    Timestamps for mobile users~
    (also, timestamps seem to work for me on mobile - for what device does it not work, or has it been fixed recently?)
    0:00:00 - Intro (Twitch Partner Chatting)
    0:01:32 - Changing Grid Size
    0:12:21 - Drawing a Cartesian Grid
    0:30:39 - Gizmo Selection
    0:35:06 - UI Events
    0:37:17 - Tool Dev Tip: Read Unity's Source
    0:43:13 - Position Handle
    0:49:41 - Drawing a Polar Grid
    1:19:33 - Snapping to a Polar Grid
    1:38:55 - Saving Data Between Sessions
    1:46:50 - Saving In Files
    1:54:52 - Making a Prop Placement Tool
    2:00:39 - Setting up the Editor Window
    2:05:55 - Scene View Raycasting
    2:12:04 - Spawn Radius, Count & Repaint Caveats
    2:18:03 - Random Points in Disc
    2:39:06 - What is Tangent Space?
    2:47:42 - Cat Ears
    2:48:35 - Design Patterns Rant
    2:51:38 - Spawn Count Refresh
    2:53:13 - Range Limiting
    2:58:12 - Raycasting Points to Surface
    3:05:51 - UI Deselection & Mouse Events
    3:09:37 - Raycast from Cursor in Scene View
    3:13:48 - Mouse Wheel to Change Radius
    3:24:27 - Modifier Keys, Bitfields & Enum Flags
    3:37:44 - Assignments!
    3:41:32 - Making the Circle Match the Ground
    3:51:59 - Outro
    3:53:29 - Bad Teacher

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

      Hey, thanks for the great content you put out, can you recommend a UA-cam channel to learn math from algebra?

    • @5daydreams
      @5daydreams 3 роки тому

      @@ceosuji I'm late to the party but 3blue1brown is the absolute best bet for you the "Essence of Linear Algebra" playlist is pretty damn good

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

      Freya youre so sexy everything right down to that voice

  • @QuietSnake-xs5vx
    @QuietSnake-xs5vx 4 роки тому +2

    Thank you for such valuable content ❤️

  • @mailmaxxxx
    @mailmaxxxx Рік тому +4

    Awesome content as ever - still can't believe I've been sitting here all day watching this stuff, being entertained and educated.
    Just one thing that future viewers might be interested in (I'm sure you know already!)
    Where you use
    so.FindProperty( "gridSize");
    it's using a 'magic string' that needs to match the property name with no compile time warning if you spell it wrong (which I do constantly due to differing preferences on CasINg!)
    C# has a function - nameof - that returns the name of a property - so you can use
    so.FindProperty(nameof(gridSize));
    so you get compile time (and IDE) errors if you get the property name wrong!

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

    thank you Freya!

  • @spacedoggames5335
    @spacedoggames5335 2 роки тому +2

    I have watched so many of your class material!
    I absolutely love your work.
    In this class you mentioned using Json.
    Something I use a lot. But Im still learning and if you ever decide to do a session on Json I’d be super interested to learn all your mad trix.
    Thanks for sharing your amazing knowledge

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

    Hey Freya!
    I've been following this series for a couples days on my time off to learn the basics of making tools but I have a small issue on the last part making the circle match the ground that I can't figure out where it comes from. I'd be extremly thankfull if you could help.
    Basically when I make the Poly Line circle it works and I get the desired ground matching effect, but for some weird reason I also get a line from each point that extends towards the center of the world. Ive checked the code multiple times and compared with the way you were doing and I can't for my life figure it out.
    Once again thank you for your amazing content it has helped me imensely during my projects and gave extremly valuable information!

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

    Amazing content thanks a lot!

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

    1:10:55 - There are 3 static fields in Mathf you could have used ;)
    Mathf.PI
    Mathf.Deg2Rad
    Mathf.Rad2Deg

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

    love these

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

    Hey Freya! Awesome series!
    I'm curious, for Flowstorm, is there a reason that your level editor is used in playmode instead of in the editor/sceneview mode? I'm curious what the pro's and con's are of each approach.
    Thanks!

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

      the only reason the level editor is in play mode is because I want my players to be able to make their own levels! otherwise it would be way easier to keep it all in Unity's scene view :)

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

    Today I had to come here to remind some things... this helped to deal with array in custom editors and property drawers... thanks once again... oh i forgot to comment about those cute cats as well 🙂

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

    Haha love the rant about design patterns

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

    thank u so much

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

    Could you use for example a scriptableobject instead of the editorprefs to save the grid values, and saving the scriptableobject in the version system so other team members can use the same values? (obviously if the use case requires shared values)

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

    thank you

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

    U are awesome, thank u

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

    2:47:06 I think the correct answer is mirrors neither flip along x or y but rather along z

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

    Yeeeeeeey \o/
    I'm sorry, I haven't done the assignment :D But will, once I'm done with LudumDare, I swear :P

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

    "Do you remember trigonometry?"
    Nope, doesn't ring a bell.

  • @TheRabidCabbage
    @TheRabidCabbage 3 роки тому +1

    For some reason, neither the Selection.selectionChanged callback or Repaint() are working for me in Unity 2021.1.7f1. My scene view wouldn't update until I moused over it or entered play mode. The callback isn't triggering at all. and even if it did, Repaint() does nothing. not even if called manually.
    The fix for me was to scrap all the event stuff and just add the following line after the for loop with the DrawAAPolyLine in it.
    UnityEditorInternal.InternalEditorUtility.RepaintAllViews();
    I don't know how optimal that is, but it works. and doesn't cause any focus issues with manual number entry. (Other attempted fixes had that issue)
    EDIT: The thing you did around the 2:16:16 mark also works.
    if (so.ApplyModifiedProperties()) { SceneView.RepaintAll(); }

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

    part 3?
    tk so much for your videos, they are amazings.

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

      soon! I've been super busy with other stuff at the moment I'm afraid!

  • @NeatWolf
    @NeatWolf 3 роки тому +1

    2:29:55 - but, isn't the third normal (bitangent) the camera forward vector, that we also used to calculate the tangent? 🤔 Am I missing something? 😟

    • @acegikmo
      @acegikmo  3 роки тому +1

      no, the camera vector is pointing down through the surface, we want one that is flat, pointing along (tangent) to the surface, hence the bitangent

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

      @@acegikmo Yes, I believe I got that... but for some reason I was assuming that since:
      - we know the A vector (hitNormal)
      - we know the B vector (camera forward)
      C (tangent, orthogonal) = A x B --> so also D (bitangent, orthogonal) = A x C.
      Since D was orthogonal to C that was orthogonal to B, I was assuming that D was the initial camera vector.
      BUT
      that's not true since C and D are orthogonal to A, not to B. I guess I forgot about the order.
      I should probably review the cross product :D
      Thanks Freya~!

  • @sixdegreesofcrispybacon
    @sixdegreesofcrispybacon 8 місяців тому

    #toolFeel
    Oh my! 😂

  • @Raven-Creations
    @Raven-Creations Рік тому

    I know I'm late, but I have a few minor points.
    Your cartesian grid drawing could have been simpler and more efficient. Just do: for (i = -halfLines ; i

  • @user-kt8rw7wu7o
    @user-kt8rw7wu7o 4 роки тому

    nice content )

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

    Hey hey

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

    Well, I've been doing game dev for a very long time now no godots, unity or unreal, but I won't lie, I've found content here new stuffs here that I've never knew before, and I really like it cause at some points I though I know everything about these engines lol, a shame to find such a very smart and talented youtubter / streamer just getting 10 ro 30 k viewers, while idiots like dani with his none sense videos just getting hunder of thousads, keep it up girly, your content is just amzing !

  • @81gamer81
    @81gamer81 2 роки тому

    sounds like your cat is not spaded :)

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

    Hey.. U know???
    U look beautiful

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

    Frey youre so hot.

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

    A humble suggestion - : Make eye contact with the camera as a law of communication
    It will surely help you in long run

  • @musicased9591
    @musicased9591 4 місяці тому

    Can you please block me? I don't want to watch your videos but it keeps coming up after NileRed when I fall asleep and I wake up to your face and it makes me angry. How do I make it stop?