MELEE COMBAT in Unity

Поделиться
HTML-код
  • Опубликовано: 14 дек 2019
  • Learn how to make melee combat in Unity!
    Check out NordVPN and get 81% off: nordvpn.com/brackeys
    Coupon code: BRACKEYS
    ● Listen to DuckTapes! www.ducktapes.fm/
    ● Bandits - Pixel art: assetstore.unity.com/packages...
    ● 2D Movement: • 2D Movement in Unity (...
    ● 2D Animation: • 2D Animation in Unity ...
    ● New Input System: • NEW INPUT SYSTEM in Unity
    ···················································································
    ♥ Subscribe: bit.ly/1kMekJV
    👕 Check out Line of Code! lineofcode.io/
    ► Join Discord: / discord
    ● Website: brackeys.com/
    ● Twitter: / brackeystweet
    ● Instagram: / brackeysteam
    ········································­­·······································­·­····
    ► All content by Brackeys is 100% free. We believe that education should be available for everyone.
    ❤️ Donate: www.paypal.com/donate/?hosted...
    ········································­­·······································­·­····
    ♪ "ES_Dress Code_Black - oomiee" by Epidemic Sound

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

  • @orange1304
    @orange1304 4 года назад +2252

    "He gets hurt and he dies. Awesome!"
    Damn, that's quite awkward out of context.

    • @AbirHasanDipu
      @AbirHasanDipu 4 года назад +31

      Death is awesome. You should try it sometime.

    • @moric4677
      @moric4677 4 года назад +10

      @@AbirHasanDipu as you have tried before

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

      out of context at 18:22

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

      @@snekpliskin Police will find out that there are multiple people involved as the word "lets" is used. Run !!

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

      1k th like:)

  • @Danidev
    @Danidev 4 года назад +3425

    Awesome video, and enjoy your holiday break! Looking forward to 2020 Brakcyes! :D

    • @jansasinowski7319
      @jansasinowski7319 4 года назад +67

      What are you doing here dani haha

    • @Lazy4444
      @Lazy4444 4 года назад +260

      You are here because you are going to do a 2D melee combat game...(or you cant do that?)

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

      Y e s

    • @crilein2425
      @crilein2425 4 года назад +33

      Yes brakcyes, eeeh wait... BRAKCYES? 😂

    • @dvxv4016
      @dvxv4016 4 года назад +10

      @@jansasinowski7319 He likes to see Brackeys videos

  • @descar1626
    @descar1626 4 года назад +714

    "so, lets slice up some enemies"
    *slices himself*

    • @clivegrey8557
      @clivegrey8557 4 года назад +42

      You think Brackeys is trying to send us some type of cryptic message??

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

      slies?

    • @QS1597
      @QS1597 4 года назад +26

      You are your biggest enemy

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

      it was the view of the enemy...

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

      @@FreeD00M oh, shit, I'm sorry, you're right

  • @BujGames78
    @BujGames78 4 года назад +530

    This has an issue tough . The overlap circle gets triggered exactly the moment we press attack button , and if we have a longer animation , we will miss all the enemys we want to hit . This happened to me but it can be fixed using Animation Events and simply put all the attack code except the animation trigger in a new public attack function and then call it from the animation at the right time. And then , in our code we just trigger the animation when we press the attack button . A great tutorial tough ! Love it

    • @csdiabo
      @csdiabo 4 года назад +8

      This is actually a really good suggestion, thanks! :D

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

      You can us IEnumerator

    • @IInathanwhyII
      @IInathanwhyII 4 года назад +8

      how? pls help or show code.

    • @g4ble
      @g4ble 4 года назад +30

      @@paulwin9036 For the timing?
      I think using Animation Events is easier to set up and use, because you can actually see the animation while setting the event.

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

      you just made my day thank you so much!

  • @AlecAndersonZx
    @AlecAndersonZx 4 года назад +56

    Wow the timing could not be more perfect I really needed this and all the other tutorials I found were low quality

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

      Ikr same. I'm working on a super Smash Bros game and just got working on the combat

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

      @@mattice9083is it a smash like game or a smash fan game?

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

      Meh more 2d fighter more similiar to towerfall but with sword combat and shurikens

  • @DenVosReinaert
    @DenVosReinaert 3 года назад +48

    The beauty of starting out in Game Development, the awkward struggle to figure out something as simple as this, being frustrated, and then just happening to stumble upon a video like this. This video is great and makes things so much simpler than what I was trying to do, thank you.

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

      Literally same fucking thing *just* happened to me. So funny

  • @shanesawyer3391
    @shanesawyer3391 2 года назад +1

    I’ve watched a lot of RUclips videos and series on scripting and Unity. This channel is by far the best, and most effective way to genuinely learn that I’ve come across.

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

    By far the best melee combat system tutorial i ever watched.
    Your videos are productive and very entertaining,please continue.

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

    I have been struggling with this all week and this explained exactly how to do it. Thank you!

  • @mccheong7288
    @mccheong7288 4 года назад +362

    Hi, there are some in comment ask how to do combo attacks. So just thought to post my reply here (animator side only):
    There is actually a easy way to do that. In the animator, create an Idle State and your 3 attack States and a Boolean variable. Make each state a transition to Idle on condition the Boolean variable is False. Then also make transitions to link from one attack to another on condition the Boolean variable is True. Therefore as long as the State detect the Boolean is True it will play the sequence of attack. And if it detect a False, it will return to Idle state. However there are many ways on the input implementation side depending on your code. And also how the combo is execute like do the combo execute as long as the button is press 3 time or press on specific time or as long as button is depress. So I left it up to you.

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

      Wouldn't it be better to use an integer instead?
      That way, you can make sure only one value for attack animation will be valid at a time.
      Also, how about using a blend tree? (Even though the main purpose of a blend tree is too blend animations.)

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

      @@sharif47 I wouldn't recommend using blend tree.Since most of the time you want the attack animation to be played fully and blending attacking animations does look terrible and can cause lots of problems.
      if you have hitboxes that depend on the lenght of the attacking animations.
      For example 2) Sword hitbox getting activated on the start of the attacking animation and disabling on the end of the attacking animation, using blend tree you would have to create a system that reads data from the animator and sends it back to the player so that the hitbox gets activated/disabled at the right time.

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

      Hey, i'm interested in making a combo with 3 attacks, wich is the code i shloud add to make it (I have the things of your comment already)

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

    Recently found your channel, it has since really been helping me in Unity! Much thanks, Brackeys! :)

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

    Your 2D series is very helpful, thank you. Please do more!

  • @joachimg7872
    @joachimg7872 4 года назад +70

    Wow video came out exactly while I was having a problem doing this 😁

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

      same lol

  • @brady1351
    @brady1351 4 года назад +153

    Hey brackets, your channel has got me obsessed with learning how to code, I’m trying to find time to do it and I will watch all your tutorials.

    • @idk-iu8vn
      @idk-iu8vn 4 года назад +9

      Anakin Skywalker his name is brackeys

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

      Definitely worth it, he is amazing at explaining how to create games of multiple genres in unity.

    • @qtnova6950
      @qtnova6950 4 года назад +13

      Brackets👏👏👏

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

      @Fate I love how insults in game dev comments are like passive aggressive and almost inspirational, but in every other comments section its STFU STUPID. LOL

    • @The-Athenian
      @The-Athenian 3 года назад

      No you won't lol

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

    Thank you! I saw your old videos about 2d shouting and top down. I used an old melee system. Now I can use an optimize system.

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

    all year I've had problems with attacking in my game and this video lit up so many light bulbs for me on how I should do it! thanks!

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

    Thank you so much for these videos, Brackeys! First time learner or unity and your information and presentation is easy for me to keep along with. really thanks a million!

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

    Just a note, if you are doing 3d from a first person perspective, you don't want to sphere cast.
    Just a ray cast with a maximum distance, or simply attach a simple collider to the weapon you are using and check for collision on that as trigger only.

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

    I can't belive it, I was just searching for a mele combat for my 2d game to implement it. And you posted this video, just on point.

  • @parmesanzero7678
    @parmesanzero7678 6 месяцев назад

    This was a better tutorial and gave me a better understanding than much longer and more involved ones in how to use unity.

  • @seaderwerks3046
    @seaderwerks3046 Год назад +15

    This took me way longer to figure out than it should of, but if you're having the issue where you can attack your enemy from one side, but not the other, its because the "attack point" circle is placed IN FRONT of your character. To fix this, move the attack point to the CENTER of your player model, and size the attack point around you. Where-ever that attack point circle touches, you can attack. hope this saves someone hours of googling and item searching. I only figured it out from watching another video. Hope this helps.

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

      can you tell me what the other videos title was? I'm struggling with this tutorial also.

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

      @@madrain3941 The video didn't address anything specifically with this tutorial. It was showing something else and I just happened to notice that there was a gizmo wrapped over the center of the player and thats how I figured it out. You can write a script that rotates the attack point with the player that will help with the player attack from only the right or attacking 'behind' you.

    • @ariweizman9041
      @ariweizman9041 7 месяцев назад

      holy thank you so much i was just struggling with that!

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

      But then you could attack enemies that are behind you right? Maybe theres a way to check wich side are you looking at, i have the same problem but didnt check if that would work or how could i do it, if you figured a better way to do it and you can tell me that would be really helpful

    • @seaderwerks3046
      @seaderwerks3046 6 месяцев назад

      @@migue4044 Yes! This was written when I was still learning more about this also.
      Eventually I found a way to make the attackpoint flip when the player does. So if the player was facing -1 then it would be facing the left, and if the player is facing 1, it goes to the right. Just plug them in with your Flip functions.
      You could also go to GPT and ask for a "offset" script that you can plug into your attackpoint gizmo and have it specifically positioned. so you can adjust the gizmos range on the X and Y.

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

    Thank you very much for this video! I have struggled to make a melee combat work since forever and been stuck doing platform shooter games instead...this is a game changer for me!!!

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

      Just to add on, if there's a melee combo system that works with the method you used in this video, it would be great if you could post that as well!

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

      I know right bro, melee combat just add another flavor to the game. Not just melee combat for Player but it's great to have enemies which actually attack player.
      I am covering the Enemy Melee Combat system on my channel. You might love it too

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

    took me so long to find a video to show how to make a health/damage system thats easy to understand, thank you!

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

    Made me feel better about my melee system. The script got a little more complicated when I tried to it compatible with all basic colliders and compound ones. The main difference is that my "hit point" tracks the weapon bone and it needs to be check every fixed update during the animation. I ended up combining it with a StateMachineBehaviour to confine the checks to the animation and cashing the collision log between checks to prevent redundant calls.
    I also made a pseudo "collision info" object to store some basic info that I use for effects and knock back. I was kind of worried that I was over complicating things. But I just couldn't figure out how to make something behave like a trigger but still get physics info I need with the built in system.
    I ended up learning a lot about StateMachineBehaviours. They are pretty cool and I never see anybody mention them.

  • @lyamschuss8786
    @lyamschuss8786 3 года назад +199

    My Brain: See this!
    Me: But I'm not a game developer
    My Brain: Just in case...

    • @user-og7wl5yi3f
      @user-og7wl5yi3f 3 года назад +16

      My brain: See this!
      Me: But I already created my own method of melee attacks and it works very well.
      My brain: Just in case

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

      funny thing that i don't understand almost everything in this video but i got the idea how it works

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

      @@stenty8464 way to go, smarty pant

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

      why stop at one pant

    • @AhmedMohamed-zj1qc
      @AhmedMohamed-zj1qc 2 года назад

      @@user-og7wl5yi3f what is it

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

    Geez Brackeys you make it look soo easy, I tried for *months* to do this with a little success in 3D and you make it in around a half hour :P
    Thanks man :D

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

      I figured how to do it alone after like a month of making ambitious yet impossible to complete games so it's not this hard. Maybe you're not really working on it just launching unity for 10 minutes a week.

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

      @@madpancake9891 You're such a special little snowflake :-)

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

      @@madpancake9891 Yeah? Well I got all the golden berries in Celeste. Get on my level.

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

      @@beri4138 I'll never beat you, but I'll try senpai

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

      @@emailakkont6520 yeah i was trying to make it sound funny, not smart-assy, kinda stupid as I've trashed Unity just after writing this comment.

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

    Oh, man! I've been waiting so long for this!

  • @Alessandro-vh8xy
    @Alessandro-vh8xy 4 месяца назад

    Best melee combat video i've seen, very simple and intuitive.

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

    I see at least a few people asked about flipping the attack point. Since I bet moving the character to the left is just an X-flip of the animation, the attack point stays to the right of the player all the time (this being in my view a bug). My recommendation would be to do some vector math from the center point of the character while taking into account the direction the character is facing. You can easily store these vectors in a variable and tie them to your controls. This is not saying this video is not AWESOME and SUPER HELPFUL as everything else Brackeys does. THANKS BRACKEYS!

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

    Brackeys: *Makes an if statement to prevent errors
    Unity's errors: You can't escape me that easily!

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

    I love your videos. I found you when I first watched your "love is blind" game jam. I wish there was someone like you for Unreal as thats what I am being taught in college, but I enjoy your vids anyway

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

    This is so helpful. Thank you so much for including so much detail.

  • @Salmontres
    @Salmontres 4 года назад +11

    any chance of getting a combo system tutorial? Doesn't need to be complex, but I'd love to see how you tackle things like stringing together attack combos, but allowing for a chance to drop the combo if the keys are pressed too fast or something

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

    u guys can run the attack function in a animation event if u want timing with your attack animations but u have to to play the animation when u press the key and remove the attack function from there because its gonna run in the animation :D

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

      Yeah, I make it too. 😁

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

      This one of the only helpful comments in this brain-dead comment section.

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

      Aqua Armour thanks 😅

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

    No experience with Unity, mainly a web dev, some C# knowledge, and damn, your videos make everything seem extremely simple. Makes me want to make a game.

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

    Thank you for the Alt+arrow keys shortcut!!!

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

    Great tutorial! Thanks!
    ...even though you're gone.

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

    Unless I completely missed something, I think there's something skipped over in the tutorial?
    Attack() is called on space being pressed, which should on that same frame immediately find the collisions and output the debug/damage.
    What is shown is a delay with the attack windup before the strike occurs, instead.

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

      Were you able to solve this problem ?, I also have it

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

    This works great for my heavy action games. Thanks, man. I'm busy on a game that looks like Super Smash Brothers, just in a 3D environment, not 2.5D.

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

    That cut in the start is very smooth!

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

    if you want to simulate the attack in physics you can make disable the collider of the melee and when you want the player to hit something in the animation add a key frame of enabling the collider and after that frame disable the collider this is a solution of many problems in the comment section :D
    But with this method you can't use brackey's health system you should use the OnCollisionEnter2D

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

    My death-animation from the Enemy does not stop

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

      Disable looping in the animator...

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

    Exactly what I needed. For me it's probably your most useful video yet!

  • @PedroFerreiragm33
    @PedroFerreiragm33 4 года назад +120

    Your tutorials are so easy to follow that I'm pretty sure a baby could make a successful game with your tutorials alone 😃

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

      😆

    • @taylorheninger5196
      @taylorheninger5196 4 года назад +15

      Well I'm trying!!

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

      Ehh. Honestly a baby would need to also have a computer which is pretty unlikely. And I don’t think a baby would understand most of the computer terms so you’re kinda wrong..

    • @Mikeul2GT
      @Mikeul2GT 4 года назад +18

      @@xXTheivesGuildXx /woooshh

    • @VI.mp4
      @VI.mp4 4 года назад +6

      @KaiVideoSYT no it's r/woooosh

  • @theonetruedonut
    @theonetruedonut 4 года назад +42

    I would love to see a tutorial on tactics games (games like advanced wars or fire emblem)

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

      Nice profile pic!

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

      @@ZiRR0 thanks I drew it myself

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

      @@theonetruedonut Mind telling me what program you used?

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

      @@ZiRR0 Gravit Designer but I also recommend Inkscape

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

      @@theonetruedonut Thanks!

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

    Fantastic, Ive had trouble understanding that Physics2D circle, command for a while, and you combined it with an array, and I still understood. Brilliant

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

      Well you can use. Debug.DrawRaycast thing to see where the hitbox is at.

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

    Yay!! I made a few tests on 3d and worked. Thanks!! Now studying combos.

  • @gamedev.1166
    @gamedev.1166 4 года назад +7

    It is really really simple and easy to learn. thanks~

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

    I see Dani in all the game development videos I watch lmao

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

    I'm having the issue. With this method player can attack thru walls (colliders). Does someone have a solution to this problem?

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

    I love these videos!!! Have an awesome Christmas and New Year Brackeys guys!

  • @jamesalbus7991
    @jamesalbus7991 4 года назад +13

    1:18 absolutely Quackers mate 😂

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

    Love your content. I wish I could teach Unity like you. I try my best :)

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

    If you were not there I would not have been able to make combat system for my game and I tried a lot making that on my own but failed then I came to your video that I remembered that you made thanks you are a saver and a god of game development
    THANKS A LOT

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

    Amazing vid rly gave me insparation to not give up and start with Unity again

  • @someone-js6pg
    @someone-js6pg 4 года назад +10

    Please do another beginner game series i'm not even a beginner and i want another one.
    it's just fun to do

  • @finnleyhauser5362
    @finnleyhauser5362 Год назад +3

    So for the floor in my game I used a tileset with a box 2D collider which means whenever the enemy dies it falls through the floor anyway to fix this also whenever I attack the enemy I can swing as fast as I want and other than that this is a great video and has been tons of help.

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

      Also using a tileset and had the same issue, this line before disabling the collider will keep the enemy in place
      GetComponent().isKinematic = true;

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

      @@senkerog Thanks!

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

      use "animator = GetComponent();" in update

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

    I learned so much from just watching your vids! Thank you for the great content

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

    Man I love the way you work so hard on your videos, but put minimal ads!

  • @michaelmietz1800
    @michaelmietz1800 3 года назад +12

    Awesome video! This helped me a bunch!
    One question though:
    How do you make the attackpoint flip to the other side when you sprite fliX?

    • @InternationalConglomerate
      @InternationalConglomerate 2 года назад +5

      Set the localPosition on the transform to a negative vector2

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

      @@InternationalConglomerate in script or in editor

    • @InternationalConglomerate
      @InternationalConglomerate 2 года назад +1

      @@GameAdonis In script, you want to set it so that it will flip to the corresponding direction you are moving programmatically. Depending on how you do it you may need to put in some checks to make sure it isn't already on the correct side or it will flip back and forth constantly as you walk.

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

      @@InternationalConglomerate I had this same issue, and what I wrote was
      attackPoint.localPosition = new Vector2(-attackPoint.position.x, attackPoint.position.y);
      but when I play test it as soon as a i start to move the attack point vanishes. help? 😅

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

      @@evan73858 When it moves, double click the objects name in the hierarchy, should move your scene view to wherever it is. Likely it's a problem with the vector2 math. Could try changing attackPoint.position.x to attackPoint.localPosition.x as just from a glance I think that might be your problem.
      The position variable is going to be completely different from the localPosition variable so if you make it negative based off Position instead of localPosition it will be entirely different coords.

  • @birgerevan
    @birgerevan 4 года назад +39

    Pls, do a tutorial on the new ECS (DOTS), and the newmultiplayer packages

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

      I'd love to see a video on how to use the multiplayer system from the FPS Sample in a new project. I'd also pay for it.

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

      @@aleef1735 yes the new unity multiplayer stuff desperately needs looking at and some proper tutorials and documentation.

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

      Yes

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

      Birger E yes I need to figure out multiplayer for my game

    • @NANI-cp9mg
      @NANI-cp9mg 4 года назад

      Yes, please do this!

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

    This helped me a lot! Thanks so much. You won’t be forgotten

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

    This was an overwhelming information but very GOOD! Thank You so much for the help!

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

    Quick question, would it not be better to determine your attack time with the animation length and/or speed?

    • @Ed-fs3xq
      @Ed-fs3xq 2 года назад

      It would be better

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

    Hey Brackeys!
    I really love your content and it always helped me!!
    Could you please make fps series (Hand + Gun animations) because the old series were old and the was a boring gun with no hand animations.
    It would be very nice!
    Thank you for everything!

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

    This is what i am looking for. Great tutorial. Keep it up!

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

    The advertisments on these videos are the best

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

    Could someone help me? :D When i press the attack while walking, the animation freezes and don't back to normal. Seems like a conflit between 2 keys pressed at same time. How do i solve it?Like, presse attack while walking and after release attack key, keep walking? Thank you!

  • @oivinf
    @oivinf 4 года назад +13

    Amazing. If there is one thing I would add though, its this:
    Most games have more than one enemy type. Instead of retrieving the enemy script you should use a IDamageable interface. Or have all enemies inherit from an abstract/base class and override its TakeDamage() - then upcast the enemy scripts and run the function that way.
    Or a third option would be SendMessage(), which runs the given function on all scripts attached to a gameobject if they exist. (Though you can't pass a param, so the last one requires a workaround.)

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

      Those are some good examples on how to improve the system, thank you for mentioning them.
      But i think you can send paramters with the SendMessage() method, in fact it is used in the example from Unity to damage an enemy.
      docs.unity3d.com/ScriptReference/GameObject.SendMessage.html

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

    Been waiting for a video on Melee!!

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

    thanks brackeys your tutorial videos help me a lot in our group project. :)

  • @OutrageGames
    @OutrageGames 4 года назад +23

    Very cool tutorial! I also use a similar technique in my melee combo system in one of my tutorials!

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

    Had premade enemies (watched another tutorial by other creator) and my hits were not connection, in other words I was calling "attack()" method, but nothing was detected. Turns out you need a box collider 2D to make it work. Overall really good tutorial.

    • @PawzyPuppy
      @PawzyPuppy 8 месяцев назад

      Been trying to get this to work for the better part of an hour. Thank you very much

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

    You should also add check for the attack rate. If Its 0 your code will crash instead of dissabling attacks as i would expect, for example if I would be doing something like no-combat zone... But awesome tutorial, I learn a lot!

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

    Hey Brackeys love your videos! And tutorials they’re so easy to follow along however I’ve got a request, is it possible for you to upload a tutorial on Helicopter controls/ helicopter physics?

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

    Thank you for the video Brackeys! I have only one issue though. The error "object reference not set to in an instance of an object" appears each time the attack button is pressed, inside the loop code: foreach (Collider2D enemy in hitEnemies) {enemy.GetComponent().TakeDamage(attackDamage);} Any suggestions to solve it?

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

      i'm getting this same problem, did u fix it?

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

      @@bonnyxavier7661 I had the same problem and it was because my "Enemy" script was actually named something else. I fixed it by changing what was inside the to what my "enemy" script name was

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

      I know this is old but pretty sure there are people watching these vids even today. So, the comment above mine should fix the problem IF that is the problem you are facing but if not this might be it, for those who choose to group their enemies in a parent object and attach the script on it will also face the same issue. Attach your script to each enemy independently, hope that helps.

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

      @@dennisdzeko3916 I'm actually having the same issue: "object reference not set to in an instance of an object"
      I checked the scripts name and they are fine, and I don't have enemies grouped to a parent object. I'm literally banging my head against the wall...

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

    Next one has to be "Melee Combat COMBOS in Unity", or something about attack sequence, because repeating the same animation over and over isn't really beautifull for the player. It would really help a lot
    Nice video btw

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

      Quim Torra just need a static variable and attack based on that

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

      Yeah i couldnt figured out combo system too. How can i check for second attack i couldnt find.

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

      Blasphemous and Hollow Knight disagree

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

    It would be really useful to see a combo system in working

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

    Appreciate this... hoping to make a fighter game sometime in the near future.

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

    Awesome tutorial, this exactly what I was looking for and works like a charm. However since disabling enemy collider on death the enemy just falls through the ground. How do I get him to not fall through the ground and just lay on top of it like you have displayed in you video?

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

      I figured something out, not sure if it's the best way to do it but I set the gravity on the enemy Rigidbody2D to 0 I'm hoping this wont effect anything when I go to create a patrol path for the enemy AI.

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

      @@iZahvi it will make enemies killed in "air" not fall down.

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

      @@DayOfCasual This is not too big of a deal for me as none of my enemies move along the vertical axis so they don't get caught in mid air except for my ghost but I have a death animation for him that he just shrinks until he disappears, though I may add other enemies later like bats that would not shrink before disappearing. Is there a better way to achieve having the enemy not fall through the floor on death before being destroyed?

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

      @@DayOfCasual any other way to fix the problem?

    • @castlewhale4746
      @castlewhale4746 2 года назад +1

      @@thenacho6354 This is a little late but if you specify what type of collider your attack will hit IE specifically box colliders, then you can give the enemy one box collider and one collider of another type and only disable the box collider when he dies, that way he doesn't fall through the floor once you disable his box collider. Not sure if it's the most elegant solution but it seems to work for me.

  • @Victor-kt6qn
    @Victor-kt6qn 4 года назад +11

    Hope someone answers.
    Why is my enemy falling through the tiles when he dies?
    It plays the death animation but he just falls through.

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

      By any chance, is your collider set to be a trigger? In that case, the collision physics won't work

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

      Same problem here, did you find a solution?

    • @thearonayne5731
      @thearonayne5731 4 года назад +16

      GetComponent().simulated = false;
      i ended up adding this to the void Die() method to disable gravity on the dead enemy model

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

      That's because you disable the collider when it dies. So if it is affected by some kind of gravity, it will fall through everything.
      I think a good way to avoid it would be to not disable the collider but instead change its layer and play with the layer matrix so the player won't interact with dead bodies. Putting it to background or whatever.
      I thought about it watching the video, hope it helps

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

      did you disable the script as in tutorial? You just need to disable correct component responsible for gravity.

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

    6:36
    This seems so rigid. What happens if I have an attack speed modifier that effects the exit time?

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

      I might be wrong, be the "1" value for the exit time should be read like "100%" (of the previous animation). It's not bound by the exact duration of the attack animation.

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

    What an epic tutorial. Also, maybe I'm just getting clever but I felt it was really well explained!

  • @SciFi.Horror.Thriller.Fantasy
    @SciFi.Horror.Thriller.Fantasy 3 года назад +4

    How do you prevent reducing enemy health more often then once, in case the collison is true for more than one frame, I wonder? By the way ... you are a gifted teacher, great tutorials!

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

      I know this is an old post, but did you ever find a solution for this? I am using skeleton animation and I get like 10 collisions on the same object hahah. Still looking for a solution.

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

      @@sheanstanks you can always do what he did in the last two minutes of the video to limit the attack rate, but do it to the enemy scripts take damage function. Just have the program skip over it if only a few milliseconds have passed

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

      Did you find a solution?

    • @SciFi.Horror.Thriller.Fantasy
      @SciFi.Horror.Thriller.Fantasy Год назад

      @@sSpectralls Add in Collision Event: Limit Conditions -> Only One Action When Event Loops

    • @SciFi.Horror.Thriller.Fantasy
      @SciFi.Horror.Thriller.Fantasy Год назад

      EDIT: Forget it - What I wrote refered to MultimediaFusion 2. Sorry!

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

    Make sure the Gizmos button in checked in the editor! I repeat, do not waste an hour trying to get OnDrawGizmosSelected to work because you didn't check the button and now you hate yourself because you ate half a cake to get through the stress!

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

      God bless you

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

      Can you please elaborate ? I am stuck on that exact step. My player combat script simply isn't accepting the acceptpoint. If i drag and drop, it appears for a sec, and then it is again set to None. Pretty sure my gizmos button is set to on though.

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

      Jfc man, I've just wasted an hour trying to figure it out, I wish I see your comment sooner

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

    Brackeys, your videos are great! They helped me so much! In the future I will consider subscribing your Patreon.

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

    All that free knowledge ❤️
    Thank you Brackeys ❤️

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

    18:21 'He gets hurt and he DIES...Awesome!"

  • @skyacaniadev2229
    @skyacaniadev2229 4 года назад +10

    Is it OK to attach collider to the weapon directly? I'm in 3D.

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

      I'm no developer, but I do think you need to ,so in order for the condition you gave to activate like in brackeys case display enemy hit

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

      Depends on the kind of combat system you want to make. Some games can be forgiving and say that an attack "hit" if a valid target is within a specific area. Others can be more punishing and check for actual collisions between the edge of the weapon and the target and the speed difference at the moment of the collision.

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

      In general it is okay to attach collider to the weapon directly, no matter if you are in 3D or 2D. But it is not the best method to approach it.
      I always suggest to have hitbox on a separate child object as it gives you more flexibility and control over your hitbox. And you can easily make changes to it without messing the sprite or textures

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

      @@SidMakesGames that is the actual way they do it in SSBU.
      Edit: also you want to use primitives for your hitboxes because they're highly optimized.

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

      @@haaly7245 I know right, that is the best method to approach it
      Also on primitives point, definitely, it is generally best to use primitives specially when you are creating a game like Street Fighter or SSBU where even mini-seconds matter

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

    Nice video as always ! Hey how about making the content about the combat with hitboxes, hurtboxes, frame, etc like the any fighting games around :D

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

    I just want you to know that your videos have really helped me a lot
    Seriously

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

    just create a variable that can influence the attack rate, and that variable is influenced by the number of enemies killed.
    Then u get faster the more you kill.
    evolution is always the best thing in games.

  • @albertvoiturier2483
    @albertvoiturier2483 Год назад +4

    I have an issue: the enemy keep playing death animation in loop even if I put ExitTime to 1 in the animator... Can someone help me please ?

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

      I’ve hope someone will help because I have the same problem :(

    • @sogyshorts5662
      @sogyshorts5662 2 месяца назад

      just disable loop

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

    this is the best tutorial ive seen out there

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

    Blackthornprod and Brackeys have the best unity video tutorials!

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

    Next show us how to make a 2D street fighter type character plz. Button combos and hit boxes etc

  • @Exorion1er
    @Exorion1er 4 года назад +240

    Most of the comments : "Next time show how to make a fully fledged game ready to be sold" *facepalm*

    • @SuperMinecraft567
      @SuperMinecraft567 4 года назад +20

      Well technically did that already... Many times.

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

      @@SuperMinecraft567 not really store-ready though, mostly prototypes

    • @elektra81516
      @elektra81516 4 года назад +18

      Something like "Can you make an MMO RPG Battle royale tutorial please?"

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

      @@elektra81516 The tutorial video for a store-ready game is just going to be "Work on your game for potentially years in a repetitive cycle of feature implementation, getting feedback, and bug-fixing, until you run out of time or money."

    • @beri4138
      @beri4138 3 года назад +8

      CAN YOU MAKE A GAME LIKE BORDERLANDS 3 OR GTA 5 THANKS

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

    You should elaborate on this to make a combo that initiates after pressing the attack button immediately after a previous attack finished

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

    please make a video on inventory, money, or pick ups after death! That would be awesome!

  • @charKT-7461
    @charKT-7461 4 года назад +6

    The anime character 1 second after seeing enemy: 0:21

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

      if its naruto then its -6 seconds before seeing them lol