Unity Movement [RigidBody vs Translate]

Поділитися
Вставка
  • Опубліковано 7 січ 2025

КОМЕНТАРІ • 459

  • @lee1davis1
    @lee1davis1 5 років тому +273

    This is the first tutorial I've seen that shows the difference between RB and translate since I started using unity a year ago. Thanks.

    • @pressstart6864
      @pressstart6864  5 років тому +14

      Awesome, glad I could help!

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

      my character just goes up, what do i do?

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

      @@palomapaloma811 well, its kinda help with no code

  • @quintongordon6024
    @quintongordon6024 4 роки тому +82

    To stop objects from moving through colliders when moving at a fast pace you can set the objects rigid body's collision detection from discrete to continuous. It's more performance heavy which is why it's not the default.

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

      thank you, saved me

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

      Sadly, it still keeps happening to me. I had to stop all movement on collision events to prevent it.

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

      Me too, for some reason, just changing to continuous does not seem to work for me.

    • @rad6626
      @rad6626 Рік тому +1

      @@thepolyglotprogrammer have you found a fix yet?

    • @anatoly.larkin
      @anatoly.larkin 3 місяці тому +1

      Looking for a fix myself. I have tried everything. Continuous Dynamic on all rbs with interpolate turned on. The rb I am moving still "goes inside" the RB it's colliding with.

  • @hiteelperado4318
    @hiteelperado4318 5 років тому +54

    Thanks, man this helps me. By giving an example for each method it really helps me to understand when to use them.

    • @wonderpouchstudios
      @wonderpouchstudios 5 років тому +4

      Yeah same, not a lot of people do this, they just show you one way "How To Move a Player In Unity"

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

      @Press Start, aw man I'm like 2 years too late but your explanations are so specific and to the point I'm learning so much. Thanks again great vids!!!

  • @cem.ugur.karacam
    @cem.ugur.karacam 6 років тому +83

    I've seen a lot of rigidbody lesson on both unity official tutorials and youtube but this is the best well explained and distilled version ever! Keep on your journey, I'll be following!

    • @pressstart6864
      @pressstart6864  6 років тому +2

      Wow, thank you for your nice words

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

      i can't agree more on this one. This is a masterpiece !

  • @only2megabytes139
    @only2megabytes139 4 роки тому +144

    You know whats more fun then finding which is best for your game? Finding out that apparently none of them will work.

    • @NotASpyReally
      @NotASpyReally 3 роки тому +7

      pain

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

      @jonathon boiragee no u are sus

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

      What's the issue? The issues he had with the first two are actually really easy to fix.

    • @only2megabytes139
      @only2megabytes139 2 роки тому +15

      @Susan Reed What the fuck

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

      when I rotate the capsule with the mouse the axes change direction (W becomes S and A becomes D and vice versa), so to go forward I have to use A, D or S depending on where the player is looking . Does anyone know how I fix this?
      I tried transform.Translate, but as said in the video, it doesn't work along with physics

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

    This video is a gift from heaven.
    I just started unity a week back and my script is super complicated because i never knew how to do movement, so I experimented.
    This REALLY helps a lot! Thank you!

  • @klaus117gaming
    @klaus117gaming 3 роки тому +6

    This is what a tutorial should look like. Been searching for a simple and well detailed answer for eternity and i got even more confused each time, but finally, I got a good answer. Thanks man 👌🏾

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

    bro MovePosition is a life saver it is weird that after 1year of struggling i still hadn't heard of it. You are in need of this movement system 7:09

  • @phi4108
    @phi4108 5 років тому

    This video help me so much. On youtube people only show how to move player but they don’t explain the different between these . Thank you so much !!

  • @Sakros
    @Sakros 4 роки тому +90

    8:06 if you turn the collision detection in the Rigidbody componont from "Discrete" to "Continous" this won't happen. Nice Video :D

    • @Theasstasticvillain
      @Theasstasticvillain 4 роки тому +19

      Note that changing from discrete to continuous is much more performance intensive though, so be careful

    • @b.alejandres8230
      @b.alejandres8230 2 роки тому

      ty buddy, you rock.

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

      Not on translate if the speed is too high, that only applies to Velocity

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

      @computerbrand9701hey, have you figured it out?

  • @majora4896
    @majora4896 5 років тому +7

    This was information I needed for a long time. I kept trying to have the translate behavior, while avoiding clipping issues. I couldn't find an answer until your video. Thank you.

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

    Thank you so much, I've been through about 50 videos today - no luck untill I found this one, god bless man

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

    This video is the best explained video on the subject that I've ever seen. Even my teacher in college didn't explained that well. This will help me alot, thanks

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

    One of the best explanations on UA-cam. Thanks!

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

    Sir, please make more of these. As a complete beginner your way of describing makes so much sense than the traditional “ follow me” tutorials where when you finish you are just as clueless if not more than when you began

  • @hershmysson
    @hershmysson 4 роки тому +4

    Oh my god you explained all of this SOOO well, dude thanks

  • @pressstart6864
    @pressstart6864  6 років тому +4

    Full source code can be found here:
    pressstart.vip/tutorials/2018/10/19/71/rigidbody-vs-translate.html

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

    This is the most helpful character movement video I've ever seen. Thank you!

  • @mushkela357
    @mushkela357 5 років тому +2

    First of all, I like all you videos and how well done they are just made (recorded, edited, and even sound and visual quality.
    I've been watching you videos on Patreon for the most part, but I just had to comment on this video.
    It's just very well explained and the demonstration and the way you broke things down just couldn't have been done better!
    Thank you very much, and keep up the good work. especially those video where you explain how things work or what certain functions/methods do or how they work. I'll be waiting for more videos like this.

    • @pressstart6864
      @pressstart6864  5 років тому +1

      It means a lot to me that you took time out of your day to write this. Appreciate the love. Tons more to come, thanks for following :)

  • @Term1nus3st
    @Term1nus3st 5 років тому +5

    This was so informative, I've tried everything without understanding anything, havent tried only movePosition and this was what I needed. Thanks a lot for the time you spent to make this video

    • @pressstart6864
      @pressstart6864  5 років тому

      Thank you for your kind words and I'm glad this video helped!

  • @carlosjunod5424
    @carlosjunod5424 5 років тому +2

    nobody could explain it better, keep with this tutorials pls

    • @pressstart6864
      @pressstart6864  5 років тому +1

      Appreciate it :) - new video on Sunday

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

    This video is gold, short, direct, and actually full of information. Getting the How, why, and what for... One of the best videos in terms of knowledge given for time spent on a video. Subscribed immediately... :D will be watching out for your contents man...very nice...

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

    Thank you for this! I made the mistake of using the Translate function for my game prototype only to then realize after a bit of work that physics, collisions, and almost every planned mechanic was non-functional. You've done a fantastic job of explaining how the rb methods work.

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

    Really useful information, good voice, high quality recording both visually and vocally, nice editing, not too short and not too long a video, clear explanation about the subject, proper examples and many other details that I am sure you have considered but I cannot immediately get it.
    I badly needed this piece of information and you just delivered that in the best way possible. Thank you so much sir ❤️

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

    hey, I've been using this video since it was released on like, a dozen or so different projects of mine for any number of functions and tasks.
    So, thank you so much.
    It has really made my life so much easier.

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

    Pretty good explanation, now I understand why there are so many ways to move a gameObject

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

    Easily the best rigidbody vs translate explanation of why you'd use one over the other and simple examples without needless complication. thank you!

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

    This was far easier to understand than some of the other tutorials I'd watched. It also gave me a couple of ideas on how to use the other movement types for different enemies. Thanks!

  • @gregoryfenn1462
    @gregoryfenn1462 5 років тому +1

    I like the format of these videos, and I think the speaking and demonstrations are clear. So I'm surprised it's still so small.

    • @pressstart6864
      @pressstart6864  5 років тому

      Thanks Gregory! We're slightly new but our numbers are climbing. We just need to breach through UA-cam's algorithm, but I appreciate your kind words and support!

    • @gregoryfenn1462
      @gregoryfenn1462 5 років тому +1

      Maybe, I don’t know how these things work. My friend Chris (Cynical Reviews (previously Cynical CJ)) started from nothing and now has like 100k subs after a year. And Sykoo does Unity stuff and is doing very well (I think he’s friends with the guy from Brackeys so that might help.) maybe you need to say more controversial opinion stuff? Seems to work for other UA-cam stars. I don’t know. I would like more channels like yours to grow because it’s great for learning Unity and generally making the community feel at home.

  • @joshuavancuyck2669
    @joshuavancuyck2669 6 років тому +2

    dude your videos are so informative and relevant and you deserve WAYY more subscribers!! Carry on man you'll soon be noticed

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

    i started learn unity from 2019 when i was 10 years old, and i wasn't know this, Thanks a lot ❤❤

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

    the best unity tutorial I ever watched hope you keep adding tutorials or even a paid course.

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

    Wow! I watched so many videos this week trying to understand this, but your video was definitely the best one. Thanks a lot! Please keep making more of those

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

    Dude this helped me so much! Thank you for the tutorial now I know why when I use transform.Translate it keeps on vibrating thank you!

  • @raffdev
    @raffdev 5 років тому +1

    Great video. Explained simply, shortly, with practical examples and comments. I don't know how you could make it any better, keep it up. You've got my recommendation :D

    • @pressstart6864
      @pressstart6864  5 років тому

      Thank you for your support! Means a lot to me.

  • @Lily-cn1bp
    @Lily-cn1bp 4 роки тому

    This is a very good explanation, it's easy to follow and it highlights important points that most other tutorials don't.

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

    Thorough, specific, understandable, and epic. You have saved my life once again brother.

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

    I loved the video! I was having problems with my 2D game because the player character was hitting the colliders but passing through after sometime, the Rigidbody.MovePosition() function was so helpful and you explained very clearly how to use it and how it works, thank you so much! :)

  • @Glisean
    @Glisean 5 років тому

    This is such a helpful video! I've been going through so many videos and tutorials that just say "move your character this way" without explaining why that method was used or how it doesn't make sense for every game. The first tutorial I followed used translate because collisions did not have an affect on the player movement but it doesn't make sense for something like a 2D platformer.

  • @2000GHz
    @2000GHz 3 роки тому

    Finally someone explained this clearly! Thank you so much for this

  • @jaimemedina3351
    @jaimemedina3351 5 років тому +2

    Thank you! Great, straight forward exposition. You pack a lot of information in a short period of time.

    • @pressstart6864
      @pressstart6864  5 років тому +1

      That’s my goal. Thanks for the feedback!

  • @jojobee228
    @jojobee228 5 років тому +7

    finally, I understood the movement, thank you for the video.

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

    Thanks to the god of random that I stumbled upon this video after watching others on the same theme. Very helpful, thank you!

  • @cajmichaelandersson5072
    @cajmichaelandersson5072 5 років тому +2

    I am pretty new to game development and this is one of my biggest problems, thanks a lot! :)

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

    thank you! this is the most simple yet comprehensive tutorial for introducing moving an object. i got the big picture.

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

    Best explanation I've found on UA-cam !!

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

    You can use a raycast before moving to see how far you should move, if the raycast hits something then get the position and use that to move instead of the usual calculation.

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

    one of the BEST ,BEST, BEST Unity Tutorials. Thank you!

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

    I watched a tutorial on ai and it used add force but I wanted to use move position. Long story short took me four days and lots of thinking, you definitely helped.

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

    You have finally made me understand parameters! At last!!!

  • @Koujujutsu
    @Koujujutsu 5 років тому +2

    Thank you so much! I've been flipping through tutorials and manuals for a week straight trying to find the simplest way to give an object flight. And...ha...for some reason, my sphere ended up flying around the X access instead of the Y, like yours. But THANK YOU. That was a succinct yet thorough explanation. I prefer the AddForce option, because I am trying to similate movement through fluid. However, I still have to look into how to include the Z axis. Maybe I should go for a follow the (3d)camera and move option.

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

    Just wow, thanks I had trouble with the addforce function and you solved it in a second.
    Thank you!

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

    Maaaan thank you sooo much. I was looking for a rb.moveposition() type of thing for ages!!!

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

    Thanks! Finally! This should be added as a Official movement tutorial in Unity website itself!

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

    Thanks for the awesome explanation! I have been wanting to understand this from a long time and this was the best video that explained it clearly

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

    is there a benifit to update "movement" separately in update method instead of also in fixedupdate where the moveCharacter method is called?

  • @JohnyLMS
    @JohnyLMS 5 років тому +4

    Just what i needed. Thanks for the video, dude

  • @Tutterzoid
    @Tutterzoid 6 років тому +3

    Thanks for covering those different ways of going about Movement in Unity :)

  • @Skipzilla01
    @Skipzilla01 5 років тому

    This was explained so clearly and objectively. Definately subbing

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

    the last one doesnt work. it gives error message Transform' does not contain a definition for 'Position' and no accessible extension method 'Position' accepting a first argument of type 'Transform' could be found (are you missing a using directive or an assembly reference?)

  • @hugomiramontes7630
    @hugomiramontes7630 5 років тому +1

    I just saw this video and it helped me understand all those concepts well, thank you very much, awesome work.

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

    8:25 u could set collision detection to discrete

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

    Great tutorial.
    One flaw at the end: Set Rigidbody Collision Detection to Continuous instead of Descrete.
    That will prevent moving through walls at high speeds.

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

    Thank you so much. Your video has helped in understanding the distinction in each of the function methods.

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

    SIIIIIIIII Luego de buscar solucion para el movimiento de mis personajes por fin encontré el video correcto. Excelente❤!!!

  • @lip3gate
    @lip3gate 5 років тому +5

    You are very talented to teach and I love how you can explain 3 different ways for achieve movement with scripts. Could you make a series with this theme? I mean, wich different functions could do the same? Thanks!

    • @technofeeliak
      @technofeeliak 5 років тому

      Well, what drives me absolutely up the walls is that the minor details tutorials often skip like the is kinematic checkbox will have me looking for hours thinking I did something wrong with the code. I'm not setting up a script directly on the GameObject you see? So it's just easy to imagine that I've done something wrong. In the end, all of this is just so simple. It's like, when I was desperately trying to get the mesh data, I'm talking about the vertices and the triangles... someone on Twitter showed me a sample of his code. It didn't work for me at all. I kept getting error messages that read something like I didn't have permission to read or write the data. When I found that stupid checkbox everything seemed to work... Oh, but no, there had to be something else. I had all the coordinates, it was so beautiful. But they looked strange, and I got to understand that I had a long list of doubles and not floats. I spent days scratching my head, trying to figure out how I would solve this or just make a tool again that I'd use to trace all the graphics. It was just a checkbox... one that determined whether to change the units of the imported mesh into Unity units. I turned that off and everything was great. So, when these experienced users and teachers don't explain things in depth missing minor details that change everything, the learning process isn't just extended it's made a torment. I say, thanks for the information but next time please make it comprehensive. You have no idea just how discouraging it is.
      ua-cam.com/video/P_VvEouFo8w/v-deo.html

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

    I can now fix my game with your help: instead of using AddForce(), I am now using MovePosition(), which doesn't break my game. Thanks :D

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

    That is absolutely what I wanted! Thank you so much!

  • @marcusmorrow3900
    @marcusmorrow3900 5 років тому +2

    This was a great tutorial. I really needed the help.

  • @auser-e47ca369
    @auser-e47ca369 4 роки тому +25

    when I use movePosition it overrides my gravity

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

      same here dude

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

      @@tomasmileto idk if this works but you can try putting something similar like this in the code
      float Gravity = 9.81f;
      Vector 2 movement = (xAxis, Gravity + yAxis);
      MovePosition(transform.Position + movement);

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

      @@tomasmileto and set to false the rigibody gravity

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

      @@magic_nanito I ended up going for rb.velocity but I'll make sure to try it out

  • @yaxyz1030
    @yaxyz1030 5 років тому +1

    I love your tutorial man! Very useful information

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

    Do you not have to multiply speed by Time.deltaTime because it’s in the fixed update method? 5:44

  • @henryjohn6244
    @henryjohn6244 5 років тому +2

    This is a helpful video i ever see. Keep it up man

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

    Thanks for a Short simple and straight forward video 😀✨

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

    2:18 "The biggest problem with transform.translate is that it doesn't detect collision."
    I have just tested this and this statement doesn't appear to be true. In your example, If you give your ball a boxCollider2D and a rigidbidy2D and you do the same for your wall, and you then move the ball using "transform.translate", it will collide with the wall. So I'm now confused?

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

      It because at the current frame, two collider with one of these have a rigibodie attach are colliding. But move positon will predicate the next frame to know if the WILL be a collision.
      So in general, Move Positon is way more accurate than Translate if you need collision

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

      @@MrTeteX9 Thank you for your reply. That was very helpful. Yes, I repeated the same test with a very high speed. Transform translate did not collide with the wall. MovePosition did collide with the wall. :)

  • @_jenfi
    @_jenfi 5 років тому +1

    This is exactly what I'm looking for! Thank you so much!

  • @smartandfunny6140
    @smartandfunny6140 5 років тому +2

    wow , amazing! well explained ! thanks man keep up the good work!

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

    got a subscription only because of this great explanation !!
    thanks a lot buddy, finally!

  • @jaopreto-wlock
    @jaopreto-wlock Рік тому

    Dude, this video saved me a lot of time, thank u

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

    at 7:42, why do u use Time.deltaTime in movePosition()? I read that movePosition automatically interpolates between 2 positions for intermediate frames. so why use Time.deltaTime?
    Also, even if you are using Time.deltaTime, why use that? why not Time.fixedDeltaTime since movePosition is being called from fixedUpdate?

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

    If you use velocity but still want the object to have gravity, you can also do it like this (it's like applying a force):
    rb.velocity += direction * speed;

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

    Great display of options! Thanks

  • @chillingoutt
    @chillingoutt 6 років тому +1

    Another awesome tutorial!! Congrats

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

    Amazing tutorial, finally understood it

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

    If I want to add force to the Y axis of an object ignoring the environment Y axis , Because the object mute flip and I don't want to push it it from the back. what should I write ?

  • @dakotak.willsonofficial6777
    @dakotak.willsonofficial6777 4 роки тому

    I’m trying to create character movement through the velocity method, but I also don’t want my character to only walk at one speed. I want to create a movement style similar to that of the Sonic games, where the character gets faster over time to a certain point. is the addforce method better for this? I’ve been trying to figure this out for a while now

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

    OMG bruh i was wondering why my movement was so janky I WAS USING THE WRONG THING!!! Thank you so much u just saved a project lmao.

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

    The best tutorial!!!! congrats bro!

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

    Thank you for this! Great explanation about the different choices!

  • @ryanmoulla2409
    @ryanmoulla2409 5 років тому +3

    Do you know how to instantiate a prefab and make it move with the player and enemies

    • @pressstart6864
      @pressstart6864  5 років тому +1

      Unity - Enemy Follows Player [Beginner Tutorial] ua-cam.com/video/4Wh22ynlLyk/v-deo.html

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

    do you have any movement tutorial like this for vector3?

  • @ossiexs
    @ossiexs 5 років тому +1

    Great explanation , great animated , great example , just wow thanks so much ,

  • @AliHosseiniDev
    @AliHosseiniDev 6 років тому +2

    a very complete toturial
    ty very much

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

    I think I missed something... I do not have clear the difference between velocity and moveposition: both detect collision and physics, and the movement is at the same speed, right?

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

    thank you so much im trying to get into unity and game dev this helped a lot

  • @noahlevine7894
    @noahlevine7894 5 років тому

    if I only want to move in the Horizontal axis what do I put for the Y component of the movement Vector2?

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

    Oh my god! I sit here since two days and I as wonderi ng why my collision skript on my Object, which I have moved with translate, didn´t worked. Thank You sooo much for your help, your awesome!

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

    Can you change the animation state if you are using the transform method since you can't use the rigidbody velocity?

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

    THANKS it fixed my collision issue.

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

    Just learning unity coding and going through the create with code tutorials on the first tutorial you learn the transform movement way and add Rigidbody components to make it hit objects so how does that work if transform code doesn’t let things collide?