4 Ways to Code 2D Player Movement in Unity (You SHOULD know these!)

Поделиться
HTML-код
  • Опубликовано: 17 дек 2024

Комментарии • 233

  • @TheZamirOrion
    @TheZamirOrion 4 года назад +377

    Wow, finally someone who takes the time to explain how things works instead of proposing ready made solutions that nobody understands. Thank you so much.

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

      i've seen a lot of people just saying "copypaste the script in the description", people cant learn by copypasting scripts!

    • @r.i.petika829
      @r.i.petika829 4 года назад +1

      @@meganixi5282 true

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

      @R.I.P Etika true

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

      Puffer Plays true

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

      @@reaperplayz8806 true

  • @xp_diablo
    @xp_diablo 4 года назад +127

    I've watched a lot of tutorials and stuff on movement in 2D games, and I've seen all the different ways they do it, but never explained. Came across this video, and now it's all clear to me. Thanks :)

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

      Hey thanks for taking the time to write that, I really appreciate it. I'm glad I was able to help.

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

      @@LostRelicGames yes brother it helping us. pls dont stop doing tutorials .

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

      ruclips.net/video/YzCF3zbfUE0/видео.html

  • @Kudoshi
    @Kudoshi 2 года назад +42

    4 ways of movement:
    PHYSICS BASED
    1. Velocity
    2. Addforce (Type: force - slowly moves up the force; impulse - no build up instant force)
    NON-PHYSICS BASED
    3. Position
    4. Translate

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

    best tutorial for basic unity ive ever seen. i dont know how people can learn just by copying someone else's code, actually having the process in front of me and explained is absolutely brilliant.

  • @youneskasdi
    @youneskasdi 4 года назад +25

    Gave me great understanding of how to actually make my own movement script unlike the rest of those youtube tutorials where they just use an already made script, thank you so much

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

      My pleasure blood moon, I'm truly glad to hear it. All the best in the exciting road ahead!

  • @ezekieldominiquintal7556
    @ezekieldominiquintal7556 3 года назад +5

    wow this is seriously underrated. you deserve more support.
    simple things like this allows beginners to develop more creative ideas because we get to understand the parts of the script itself whereas others only provides results of using a certain script. your way makes us be more confident in experimenting on the engine on our own.

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

    Please give us tutorials like this again. They are really amazing and not boring to watch. You are clearly explaining the things and reason behind them. Thank you very much. This channel is underrated.

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

    I wanna express my sincere gratitude to you. I have been so many tutorials and this is just the thing that I wanted. "The difference between different movements" . All I ever got was "Confusion" UNTIL NOW

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

    Thank you so much for clear explanation! I was using unity for about a week and just copy pasted somebody's movement script without understanding what it does, but now i can write my own movement script and it's all thanks for you

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

    Dude your videos are the best thing I've found on youtube about Unity.

  • @codinginflow
    @codinginflow 3 года назад +17

    Terrific explanation, thank you

  • @keventy6114
    @keventy6114 4 года назад +29

    .AddForce: Spaceship game, here I come!

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

    This is great, I'm a software engineer trying to become a game developer and despite being a software engineer I'm not great at coding, so this is really helpful, I have always wanted to develop games and I'm currently working on my first, thanks for the help!

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

    One thing I would add; if you manipulate an object via its transform, you kind of break the physics interactions. So objects that should 'bounce' off each other will potentially pass through each other. If your player character runs against a dead end wall it will jitter rather than if you use velocity / force where it will simply stop moving (your run animation might keep going but that's a whole different thing ;-) )

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

    I don't know why he has so little subscribers. He is probably the best teacher i found so far that actually helped me explaining every little detail. Thank you man. You're the best

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

      ruclips.net/video/YzCF3zbfUE0/видео.html

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

    Thank you!
    All of the tutorials I watched never explained how those work, and never understood until now, great vid! :)

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

    Amazing. I've seen so many tutorials of movement but its center on a specific idea and this video explains every type of movement so you can choose which one to use depending on YOUR idea and not on the videos idea. Thank You so much

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

    This is so practical! Helped me figure about an issue with my 2D character!

  • @Alex-re3qm
    @Alex-re3qm 2 года назад

    only video I found that actually helped me understand what to do and what the code does

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

    Awesome tutorial better than anyone i found on youtube described breifly and to the point keep it up man love u

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

    I didn't knew why FixedUpdate , but not Update... You just make it clear not just for me, but for the 64k viewers too. Keep it up!

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

    Thank You Sir For Making This Video , My every doubt regarding movement, now has been cleared, u explained everything in details ofcourse with live examples, i really like the way u teach, Keep up the good work.

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

    There are just not enough tutorials on 2d movement, thank you so much

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

    I wanted to start programming as a digital artist but could’t find any good tutorials but then I found your channel and it have helped me a lot! Thank you for great content x3

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

      ruclips.net/video/YzCF3zbfUE0/видео.html

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

    8:00
    could be used for moving through a river which is flowing into the opposite direction

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

    I’ve been struggling to learn this stuff, with this video it just *clicked* thanks so much!

  • @kidscanvas4141
    @kidscanvas4141 Год назад +1

    Best video for beginners.but please it's a request to place your all videos on unity in a playlist

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

    Thank you so much for this video. Really helping me understand some of the fundamentals better!

  • @오진석-z6v
    @오진석-z6v 3 года назад

    This is by far the best tutorial on moving 2d characters. Thank you so much!

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

    Finally someone explain what every function do. You were a big help, thanks man.

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

    Awesome bro i like your tuts, and i was wondering if you can make tuts serie about making complete 2D game from scratch for beginners and inclouds many features like kicking, shooting and all this cool stuff.

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

      Thanks for the comment! I'd absolutely love to, I'm a actually just waiting for unity to officially release the new input system, as it will have a critic effect on any big video series make

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

      I am excited for the new input system. Once you make a video on the new input system that is officially out of preview, please cover how mobile inputs work under this system.

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

    Very good video, I learned a lot, thanks :D

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

    Defenitly subscribed! Your explanations helped a lot! Keep it going like that, its the best way for beginners to understand how this language works! thank you very much!

  • @JC-jz6rx
    @JC-jz6rx 4 года назад +6

    this is great stuff, came from Reddit

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

    Thanks so much. Brilliant start point to start learning.

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

    This is literally epic, thank you so much

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

    men, this is gold, thanks for this!

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

    A few of your points such as using FixedUpdate and not to use transform position with rigid bodies were something I had to figure out by myself. Wish I had come across your video earlier. Great tutorial nonetheless

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

      Thanks Hari, glad to hear you are making progress! Wishing you the best on the path ahead

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

    'sWhen I pressed play the player just floats down really slowly and when I press D or A (I have this instead of the arrow keys) the player doesn't move. I don't know what's wrong, is there anyone who could help? btw I am at 3:11 in the video
    edit: I figured out why the character was falling so slowly (it's the gravity thing under rigidbody2D) but I still don't know how to fix the player movement

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

    I'M IN 5:00 AND I THINK YOU ARE A "LEGEND"

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

    "You SHOULD know these!"
    Me: *Laughs in no experience*

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

    Awesome tutorial🤩🤩 .Please make a full course of your tutorials on 2d games. Keep the good work

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

    I am really new to Unity, C# and a bit programming too, so thank you for this really helpful tutorial! I like how you really explain this stuff on a coding level for beginners instead of just dragging and dropping working stuff.
    However, I wonder why your Visual Studio seems to give you always the best next suitable words while writing code and mine not (or at least less). Therefore I cannot really explore all the different Methods given, but have to find them out via internet one by one. I downloaded unity and VS just recently - is there any setting I just have activate or what could be the reason for this?

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

      Hey mate! Make sure VS is linked to unity inside the unity preferences

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

      @@LostRelicGames Helped! Thank you. :)
      However.. it confuses me, that it wasn't selected automatically, because I installed VS through Unity. xD

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

    12:40 replace *5 with a variable called something like speed

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

    Awesome! I recently found your channel and it is helping me to polish my knowledge, keep it up and thank you for sharing!

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

      Nice one dude, you're a good man. Swing by the discord if you ever need to chat

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

    5:51 is there a way of caping out the force, and just being able to go at a max speed?

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

      Complete beginner here, so I may be wrong, but after the code shown in the example, I would try creating a speedLimit variable and adding something like:
      if (moveSpeed > speedLimit) {
      moveSpeed = speedLimit
      }
      So the AddForce method will still try to increase the speed, but this statement would reset it back down to the limit you have set.
      Can someone who knows what they're talking about let us know if I'm right??

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

    2:21, i have a problema, i tried to attepmt "roll a ball" tutorial from unity
    But, when i type "Vector2", the color remain the same, just like a random text without a meaning or a role
    Can anyone tell me what.s wrong?

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

      What do you mean with color remain the same?

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

    Cool video! for reference, adding to transform.position and using transform.translate are doing the exact same thing. using space.self is the exact same as adding to transform.localPosition and using space.world is the same as adding to transform.position

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

    Great Work! You just got a new subbed

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

    Cool video thank you so much!!!

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

    Great video! One question. Time.deltaTime is only used in the Update and not in FixedUpdate, right?

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

      If Time.deltaTime is used inside FixedUpdate, it automatically returns Time.fixedDeltaTime. In other words, you can safely use Time.deltaTime everywhere.
      Source: docs.unity3d.com/ScriptReference/Time-deltaTime.html
      (See the second line on that page.)

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

    How did you first start off? How did you attach the rigid body? How did you do the box collider thing? Everyone assumes you already know this.... :(

  • @LostRelicGames
    @LostRelicGames  4 года назад +17

    ​►Unity Asset I made to help beginners make platformers - ​u3d.as/2eYe​
    ► Wishlist my game - store.steampowered.com/app/1081830/Blood_And_Mead/

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

      that brings up the assetstore only

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

      The link is broken.

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

      Hi, I know you probably won't see this but I just thought I might try. I'm having trouble with the code, (this is the first example you showed I'm talking about) when I add the "else {buttonPressed = null;}" the code stops working and no error comes up in the console or anything. I added a Debug.Log thing to test if the code to move the player to the right worked, and it magically fixed the problem. So then I thought I'd put in the part of the code to make the player move to the left, and then the code stopped working again. I tested some more, and when I tok the buttonPressed = null; away completely from the code it started working but the player won't stop moving, and when I put the buttonPressed = null; back the code stops working again. I don't know what's wrong. If it isn't too much trouble could you maybe help me or point me in the right direction? No worries if you can't of course.
      edit: I've changed the script and now if I spam the button it might move a little

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

      man, i cant see the speed in the component.

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

    Thank you so much, I managed to understand how to finally make my square move

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

    Do big animation movies include coding? Or only in games? In animation making app to move a character like that I have to draw multiple images of that in different places to look like it moving.

  • @JohnDoe-oh7gf
    @JohnDoe-oh7gf 8 месяцев назад

    I'm late to the party but enjoyed it.

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

    This is the best movement related tutorial Ive ever seen on RUclips . I have a small doubt, why physics related stuffs are kept under FixedUpdate() instead update() ?

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

      FixedUpdate() is synced to Unity's physics engine

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

      @@sapazu Thanks man .

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

    subscribed!!! no time wasted i thank you !!! your are life saver

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

    i have a problem where it says Assets\PlayerController.cs(33,33): error CS1002: ; expected
    although when i put a ; to
    ButtonPressed = null
    Then 7 more errors pop up

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

    this is a great tutorial, and well explained!

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

    Ow wow, even if you don't believe, you may have heard, the Lord works in misterious ways, or something along those lines. Now I know, this is youtube and there's an algorythm but this is what happened. I saw an inspiring vid about why quitting alcohol is good. In that was a piece of an interview on Howard Stern with Ben Affleck about his journey with quitting alcohol, so I wanted to find the whole interview. I opened a new tab, but because I have been looking into 2d programming as well, this vid popped up. Finally I would say, because the beginning is very very steep... AND as a bonus, 4 more vids on the side about 2d movement and examples. Whooo!! Anyway, still gonna watch that intervieuw because I'm actually very tired of that contatnt battle with the bottle. But I want to happily say, it came all together on 8-7-2023 All the best to you and your jounrey in live. Please keep following your heart and dare to ask for help and support by the people around you. Later alligator!! ;-) Jake

  • @8blitzgamer179
    @8blitzgamer179 4 года назад

    thanks for adding the code for it

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

    Amazing video liked and subscribed thank you you are a very good teacher!

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

    Hello, please make a video about the player pulling and pushing the block

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

    Great video, thx!

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

    thanks u deserve more attention

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

    15:25 old school kung fu movie dubbing vibes right there!
    "You have insulted my Unity Sifu, prepare to die!" XD

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

    Awesome video thank you so much!

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

    thanks! helped me a lot with my game

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

    Which technique does your game "blood and mead" use? Thanks!

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

    helped me lot about coding

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

    Thank you for the explanations.

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

    Hey, I was wondering, I’m creating a kinda like pool style game, is it possible for it to be controlled by clicking on the sprite/then you select another position, and it moves?

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

    I feel that you will be the next brackeys.

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

    thank you dude this was a lot of help!

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

    Did you left vector2.Lerp() out for a reason? Is it some kind of code smell for moving? I'm trying out online multiplayer stuff at the moment and for me Lerp is the way to go to handle lag problems without flickering.

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

    I came from a unity basics video and decided I wanted to start my own project from here this video. just curious will you ever have like a long tutorial of Unity 2d for beginners with kicks other attacks etc? Also do you have any tips for me for my learning process. Thank you very much

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

    İ used velocity code but my character just jump one times why? Probably i didn't write code correctly

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

    Great tutorial as always! Forgive me if you've already covered this, but how would you apply Unity's new Input System to this? I'm having a devil of a time figuring it out.

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

      Hey dude, glad you liked it! I'm yet to start fully playing with the new input system. waiting for it to be officially part of the unity release. I have a feeling every single tutorial and unity resources on the internet will break as a result of their changes! :)

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

      @@LostRelicGames Yeah, it certainly seems that way. Trying to reference the input system in the code isn't as intuitive as the methods you use for simple movement. Thank you for all your wonderful tutorials, and I've already wishlisted your upcoming game.

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

    Helped a lot bro! Thanks

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

    Amazing man

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

    how would I make the character jump/go up. I'm gueessing ou change somthing to do with the vector, but I can't find anything about it.

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

    Great info! Very helpful!

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

    Awesome! Great Tutorial!

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

    My favourite method 12:56

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

    Hey you missed one that i really want to know! You know like Oddworld abe's oddysee where the character appears to walk smoothyl but i think there's a grid under the hood because you cannot position yourself in certain spots, there's a set number of places you can stand. This was a very good video though and useful for learning physics movement thank you :)

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

    Really Appreciate Bro Thank a lot for this Really good Explain all techniques and their working❤✨✨

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

    awesome video

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

    Thanks for upload this tutorial ^^

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

    Thank you so much for this!

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

    writing "public Rigidbody2D RB;" is enough because then you can drag the component to the sxript to attach them

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

      Then you're exposing the RB field to every other script, meaning they can potentially modify/alter it. You shouldn't go around making everything public unless there's a good reason for it. If all you're wanting is drag-and-drop functionality in the Inspector, use the SerializeField attribute instead and keep the field either private or protected!

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

    So helpful

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

    finally someone that tells us why tf we do what we do

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

    I have subscribed!!!

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

    Could ypu do a tut on wheelcolliders and grip or friction. At ceetain speeds my cars will not turn.

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

    That's interesting and much more understandable now. But do you know how to make actual 2d movements with a force that slows the player down after he moved? I got that in my game but it doesn't seem to work properly with the jump and slightly gets into walls when pushing on them.

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

    when i try to open up the script it open on this notes thing not visual studio...?

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

    when i set the y velocity to 0 it override physics and my cube fall down very slowly , why it dos'nt happen to you???

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

      try to set the y to rigidbody.velocity.y instead of setting it to 0 so that it will retain its original velocity to y

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

    What does the ".Translate" part of the code actually do? As I understand it, "transform" tells the GO to move a certain amount of frames, but I think that the "transform.Translate" part actually made the cute cube move a little more in sync with the Scene View. Or maybe I just need eye-transplant :D
    Thank you for the video!

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

    thanks man i am working on android game and i'm confused about what controller to chose, any suggestions.