2D Movement in Unity (Tutorial)

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

КОМЕНТАРІ • 6 тис.

  • @sink899
    @sink899 6 років тому +4806

    Usually I like your tutorials, but this one isn't great. It doesn't really teach how to do 2D movement, and rather teaches how to use a pre-made script, so in the end nothing about the movement is learnt, other than the inputs. A follow-up video on creating the actual script that does the movements would be useful to people learning, as it'd let them play around with their own ideas, instead of being limited to the pre-made script.

    • @DukaSoft
      @DukaSoft 6 років тому +289

      I was thinking the exact same

    • @UBassBoostHD
      @UBassBoostHD 6 років тому +301

      Bilip He said this tutorial is for beginners and he will not do a "propper" script for movement! This tutorial is not bad, for me was very helpfull. Probably you are an advanced developer who knows how to code, but i don't.

    • @DanielGriffiths
      @DanielGriffiths 6 років тому +154

      I agree, it is much better to see the whole process than using something pre-made.

    • @StillNight77
      @StillNight77 6 років тому +214

      Feel free to read the code in the script provided to learn from that. This is how most programmers learn.

    • @felipe18383
      @felipe18383 6 років тому +25

      Good point

  • @thepizzafoogle5481
    @thepizzafoogle5481 3 роки тому +1297

    Me: Copies exactly everything
    Unity: Can I offer you 300 compiler errors?

    • @sirtenders2965
      @sirtenders2965 3 роки тому +94

      "forgets to put a ; at the end of a line"

    • @tomtin4363
      @tomtin4363 3 роки тому +35

      Try not to exactly copy it then or at least make sure you understand everything going on!

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

      LOL

    • @ILurkInTheComments
      @ILurkInTheComments 3 роки тому +5

      omg your not wrong

    • @ILurkInTheComments
      @ILurkInTheComments 3 роки тому +22

      i still dont know how to add a player controller because i do everything the video says but unity hates me i guess

  • @Mistbu
    @Mistbu 4 роки тому +1075

    All hail lord Brackeys. You will be missed.

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

      What happened?? :0

    • @mafhchodhri9699
      @mafhchodhri9699 3 роки тому +22

      @@breadman3415 he left UA-cam

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

      @@mafhchodhri9699 why?

    • @oskari3659
      @oskari3659 3 роки тому +19

      @@michaelross3061 he had video about it, just wanted to do something else for a change after doing gamedev stuff really long

    • @syllebrix5784
      @syllebrix5784 3 роки тому +5

      @@breadman3415 he stopped making yt

  • @dufwine3621
    @dufwine3621 Рік тому +107

    Hey everyone, if you are having some issue with crouch, the script provided in the discription has an error. To solve that, just open with your editor and go to line 67 (it is an if(!crouch) state) and remove the '!' on that line. The reason to do this is that is that the original check - if(!crouch) - is checking if player IS NOT crouching, and then set it to true. We don't want that. In fact, we want to know if player IS crouching. I hope this can help anyone else! Great tutorial though!

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

      Okaeaeaej

    • @robbybobbijoe
      @robbybobbijoe Рік тому +6

      Thank you man! When my character started crouching automatically under some stuff he normally should be able to pass through I went to look for info here. I didn't know if you were referencing that problem but I tried doing what you said and it fixed it! Thanks :)

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

      @@robbybobbijoe You're welcome! XD

    • @laubi5353
      @laubi5353 Рік тому +2

      OMG thank you

    • @Rainbowgunsh
      @Rainbowgunsh Рік тому +2

      mega thx

  • @someidiotontheinternet5615
    @someidiotontheinternet5615 4 роки тому +1852

    me: do everything correctly
    unity: *n o*

    • @ZeonplayzYt
      @ZeonplayzYt 4 роки тому +43

      Underrated comment and the same happened to me

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

      @gentoo Hey man, it seems you have a double = in your statement. Input.GetAxisRaw("Horizontal") should be multiplied by the runSpeed variable. The line should be: horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
      Hope this helps!

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

      sameee

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

      the script is outdated

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

      @@SomeDudeOfficial oh, thank you William afton! I didnt knew it

  • @MrButterGuy
    @MrButterGuy 4 роки тому +716

    For those of you still having trouble with your character falling through the ground, set a Tilemap Collide 2D to your tilemap

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

      how

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

      @@pizzarolls9350 click on your tile map it's a component you can add onto it on the right side window

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

      @@MrButterGuy thx but i found another solution u can add a box collision to your terrain and that made my character not fall through

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

      Thank you god

    • @Rose-ez9vf
      @Rose-ez9vf 4 роки тому +2

      Bless you!

  • @reaper_artwave
    @reaper_artwave Рік тому +14

    for those who are having a problem with the player clipping through the floor when releasing crouch button under an object,
    you need to edit the CharacterController2D script line 67(!crouch) change it to (crouch) to check if the player IS crouching AND line 64 the Move method you need to remove the first if statement. it basically means its only checking if there is an obstacle above you ONLY when you are pressing the crouch button which wont keep the collider disabled when you release the crouch. However when you remove the if(crouch) the first one in the Move method, it will check if there is an obstacle above you whether you are pressing down the crouch or not. meaning even when you release the crouch button it will STILL check is there an obstacle above you and therefore prevent the player from unchrouching until there is no obstacle above you.

  • @ItsMeHoodson
    @ItsMeHoodson 3 роки тому +309

    "and know our character should be able to walk."
    My Character during the Game Jam: best i can do is spin.

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

      Bro I’m trying to make my character spin and I can’t figure it out.

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

      @@landonlikesjazz3420 Z-axis probably not clamped in the rigidbody 2d settings. Check 5:04.

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

      And

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

      @@gaganpatidar8820 Yes. That is what I did. Freeze the Z I believe.

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

      Your character live in spain whit out the "a"

  • @mrkathooloo5711
    @mrkathooloo5711 4 роки тому +133

    For those that are having the problem of not being able to jump, make sure that your GroundCheck is on the actual ground rather than on the bottom of the player.

    • @huefley8921
      @huefley8921 4 роки тому +5

      Thank you so much!! i getting crazy because my Character didnt jump.

    • @erykbabayan8673
      @erykbabayan8673 4 роки тому +5

      Jesus man.... I wouldn't get a clue i fucked that up xD

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

      dude thank you

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

      THANK YOUUUUUUUUUUUUUUUUUUUU

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

      Thank you so much!!!

  • @Without_Context
    @Without_Context 4 роки тому +377

    i change Code and its now work for 3D games
    using UnityEngine;
    public class CharacterController : MonoBehaviour
    {
    [SerializeField] private float m_JumpForce = 400f; // Amount of force added when the player jumps.
    [Range(0, 1)] [SerializeField] private float m_CrouchSpeed = .36f; // Amount of maxSpeed applied to crouching movement. 1 = 100%
    [Range(0, .3f)] [SerializeField] private float m_MovementSmoothing = .05f; // How much to smooth out the movement
    [SerializeField] private bool m_AirControl = false; // Whether or not a player can steer while jumping;
    [SerializeField] private LayerMask m_WhatIsGround; // A mask determining what is ground to the character
    [SerializeField] private Transform m_GroundCheck; // A position marking where to check if the player is grounded.
    [SerializeField] private Transform m_CeilingCheck; // A position marking where to check for ceilings
    [SerializeField] private Collider m_CrouchDisableCollider; // A collider that will be disabled when crouching
    const float k_GroundedRadius = .2f; // Radius of the overlap circle to determine if grounded
    private bool m_Grounded; // Whether or not the player is grounded.
    const float k_CeilingRadius = .2f; // Radius of the overlap circle to determine if the player can stand up
    private Rigidbody m_Rigidbody;
    private bool m_FacingRight = true; // For determining which way the player is currently facing.
    private Vector3 velocity = Vector3.zero;
    private void Awake()
    {
    m_Rigidbody = GetComponent();
    }
    private void FixedUpdate()
    {
    m_Grounded = false;
    // The player is grounded if a circlecast to the groundcheck position hits anything designated as ground
    // This can be done using layers instead but Sample Assets will not overwrite your project settings.
    Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
    for (int i = 0; i < colliders.Length; i++)
    {
    if (colliders[i].gameObject != gameObject)
    m_Grounded = true;
    }
    }
    public void Move(float move, bool crouch, bool jump)
    {
    // If crouching, check to see if the character can stand up
    if (!crouch)
    {
    // If the character has a ceiling preventing them from standing up, keep them crouching
    if (Physics2D.OverlapCircle(m_CeilingCheck.position, k_CeilingRadius, m_WhatIsGround))
    {
    crouch = true;
    }
    }
    //only control the player if grounded or airControl is turned on
    if (m_Grounded || m_AirControl)
    {
    // If crouching
    if (crouch)
    {
    // Reduce the speed by the crouchSpeed multiplier
    move *= m_CrouchSpeed;
    // Disable one of the colliders when crouching
    if (m_CrouchDisableCollider != null)
    m_CrouchDisableCollider.enabled = false;
    } else
    {
    // Enable the collider when not crouching
    if (m_CrouchDisableCollider != null)
    m_CrouchDisableCollider.enabled = true;
    }
    // Move the character by finding the target velocity
    Vector3 targetVelocity = new Vector2(move * 10f, m_Rigidbody.velocity.y);
    // And then smoothing it out and applying it to the character
    m_Rigidbody.velocity = Vector3.SmoothDamp(m_Rigidbody.velocity, targetVelocity, ref velocity, m_MovementSmoothing);
    // If the input is moving the player right and the player is facing left...
    if (move > 0 && !m_FacingRight)
    {
    // ... flip the player.
    Flip();
    }
    // Otherwise if the input is moving the player left and the player is facing right...
    else if (move < 0 && m_FacingRight)
    {
    // ... flip the player.
    Flip();
    }
    }
    // If the player should jump...
    if (m_Grounded && jump)
    {
    // Add a vertical force to the player.
    m_Grounded = false;
    m_Rigidbody.AddForce(new Vector2(0f, m_JumpForce));
    }
    }
    private void Flip()
    {
    // Switch the way the player is labelled as facing.
    m_FacingRight = !m_FacingRight;
    // Multiply the player's x local scale by -1.
    Vector3 theScale = transform.localScale;
    theScale.x *= -1;
    transform.localScale = theScale;
    }
    }
    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    public class PlayerMovement : MonoBehaviour {
    public CharacterController controller;
    public float runSpeed = 40f;
    float horizontalMove = 0f;
    bool jump = false;
    bool crouch = false;
    // Update is called once per frame
    void Update () {
    horizontalMove = Input.GetAxisRaw("Horizontal") * runSpeed;
    if (Input.GetButtonDown("Jump"))
    {
    jump = true;
    }
    if (Input.GetButtonDown("Crouch"))
    {
    crouch = true;
    } else if (Input.GetButtonUp("Crouch"))
    {
    crouch = false;
    }
    }
    void FixedUpdate ()
    {
    // Move our character
    controller.Move(horizontalMove * Time.fixedDeltaTime, crouch, jump);
    jump = false;
    }
    }

  • @thenecromancer4113
    @thenecromancer4113 3 роки тому +24

    I'm glad he explains where all of the variables are and what they do. Someone who wants to write code but can't type very fast can know when they are required to put an "arachibutyrophobia" in the code or when they can simply put "r." Super clear too. Thanks!

  • @anchovy5325
    @anchovy5325 3 роки тому +176

    me: does everything he said
    unity: nono we dont do that here

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

      yea, it doesent work cus that code he is using is outdated.

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

      @@danniitv o

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

      @@danniitv nah it works

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

      @@DivSharp You must down load the script and drop it to unity bro, the code still work but there something wrong and need to be fix to work :v

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

      @@DivSharp I am in 2019.4 too and it doesn't work it says the : The name "Input" does not exist in the current context when i try ton enter playmode. But i checkerd and i did the same things as brackeys ...

  • @isaiah4967
    @isaiah4967 4 роки тому +377

    //Wow, that's the cleanest desktop I've ever seen.

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

      probably a second windows account for recording

    • @BryanKeferl
      @BryanKeferl 4 роки тому +44

      Love the fact that this comment is written as a comment in script.

    • @AhmedAhmed-dv4ch
      @AhmedAhmed-dv4ch 4 роки тому +3

      @@neek01 or a second monitor with a second desktop

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

      @@cloudythb Have you define the Layer of your Ground and the "What is Ground"(3:00) in the Character Controller?

    • @GG-kx4ct
      @GG-kx4ct 4 роки тому +2

      //HE SETS IT UP

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

    Here’s some problems i faced and solutions i came up with.
    Player falling through floor / Rigid floor
    - Use TileMap Collider component on tilemap
    Couldn’t Move
    - Noticed my player was stuck in mid air, turned on air control to fix
    Couldn’t Jump:
    - Again due to player being stuck in mid air, and you can’t jump unless you are touching the ground. Noticed my ceiling and ground check were mixed up. Rearranged them and fixed the issue. (The ceiling check and ground check steps are required for jumping to work)
    Couldn’t Crouch
    - Go into the Character Controller script and press F3 or CTRL + F to use the “find” tool. Type in “!Crouch” (make sure it’s not case sensitive) and edit out that exclamation point.

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

      Thank you so much. Now i can crouch :)

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

      Thanks a bunch! The crouch issue was driving me crazy

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

      In Germany we call this "Ehrenmann"

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

      A R Thanks 🙏🏼

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

      Thank you so much! you saved me so much time

  • @fy8798
    @fy8798 6 років тому +316

    I disagree that one shouldn't spend time with a character controller. I feel the opposite is true. Using a premade script is the worst possible choice, because you don't learn the basics.
    Movement teaches you more about unity than most people realize. For example, choosing HOW you move (modify velocity directly? Add forces? Transform and your own physics) will already teach you the differences between the kinds of forces unity uses.
    I've picked "modify velocity directly", for example, but that then causes other things to learn, particularly about how the physics engine works. Problems crop up, like moving into walls stopping falling, which teach you even more about the physics, and the solution naturally teaches you raycasts (as you want to make a check if your character is grounded, which requires raycasts).
    You also learn right here how gravity works, and that to solve this issue, you'll have to add gravity to your velocity "manually", so the movement into the wall doesn't cancel it out, which it normally does.
    And then there's moving platforms, which in itself offers multiple solutions, and teaches you even more.
    I wouldn't even have known about many of the intricacies of unity, especially when it comes to physics, if I had just picked a pre-set assets.

    • @sensei9767
      @sensei9767 6 років тому +9

      That is very true. It does depend on how deep you want to go into coding, but if you're serious about learning how to code games you should at least try it.

    • @manakaYT
      @manakaYT 6 років тому +12

      mind you give me a source to learn all about this physic scripts?

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

      I know things from different tutorials, trying them out and looking them up, I don't know a good tutorial that explains everything.

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

      Fen Y it is simple!
      public float bulletSpeed;
      public int bullets;
      public int maxBullets;
      [SerializeField] private GameObject bulletPrefab;
      void Start(){
      bullets = maxBullets;
      }
      void Shoot(){
      if (Input.GetKeyDown("F")){
      Bullet = Instantiate.bullet.object
      bullets -= 1;
      }
      }

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

      i actually like walls stopping the player, it stops him but if hes sticcking to it too much, the force eventually pulls him.
      but I apsolutely agree!

  • @Ithee_The_Fox
    @Ithee_The_Fox Рік тому +9

    For anyone struggling with the player still falling through the ground, add a component (box collider 2D) to your terrain. It's the fastest way possible to do it and Brackeys didn't show it on his video. Hope it helped!

  • @dinovidakovic9486
    @dinovidakovic9486 6 років тому +559

    There is a bug in new version of the script for movement. On line 45, I guess they accidentally put !crouch instead of crouch. This bug makes your character be always in the crouch position. To fix the bug, just open the "Character Controller 2D" code and edit that little "!".

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

      no its line 67
      ...
      the movement speed line 21,33 is wrong..

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

      I just spent quite some time trying to figure out why my player was always crouching, thank you so much. This solved it.
      P.S. The code has been updated and the line with the crouch error is now line 67.

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

      Merci :)

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

      AAAAAGAGHGHGHGHGHHGHGHGHAGHAGHAGHGHAGHAHHHHHHHHHHHHHHHHHHHHHHHHHGHGAGHGHGHGHHH!!!1!!!11!
      I worked about 3 hours on that problem and I didn't find it then I looked up your comment and deleted that little "!" and it's done! I don't fricking know should I laugh or cry.

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

      At last, somebody found it

  • @SMT-ks8yp
    @SMT-ks8yp 3 роки тому +26

    Turns out this set of colliders has weird interaction with platform effectors. The character can land on a platform with bottom side of the box while circle still ignores collision. If you are going to use platform effectors, replace the box with a vertical capsule collider full height long.

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

      You can use the box and circle, but the box has to be smaller than the circle on the left and right edges.

  • @ichifish
    @ichifish 6 років тому +117

    My favorite parts of your tutorials is when:
    1) you do something
    2) I ask "... but why..?"
    3) you go on to something else, and then
    4) come back and answer my question.

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

    For anyone who was having problems with your sprite crouching before you hit a wall. TLDR; change the size of line 17, K_CeilingRadius to better fit the character.
    The ceiling and ground checks make a radius that look out for the selected layers, these have a pre set size. You can make a circle and mess with sizes , then copy the size onto line 17, this way the invisible radius will be the size you needed.

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

      Thank you sooo much, this is the right answer, the problem is not in the code, it dependes on your character height and the position of tiles

  • @mpixel2058
    @mpixel2058 6 років тому +72

    I would like to see a tutorial like this for a top-down 2D game, like Zelda.

  • @aligonia
    @aligonia 4 роки тому +24

    If anyone is getting compiler errors there is a good chance that your Unity and Visual Studio aren't configured to work with each other yet and things like CharacterController2D aren't being recognized as classes. This is the solution below:
    In Unity Editor Go to Menu, Click on Edit -> Preferences -> External Tools -> External Script Editor. Set it to Visual Studio (your installed version of VS).
    Now in Menubar go to Edit -> Project Settings -> Player Settings -> Other Settings -> Under Configuration -> Check API Compatibility Level -> Change it to your installed .Net version. In my case I set it to .Net 4.x
    Then just restart VisualStudio and it should start recognizing the classes.

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

      Man,,, how can i THANK YOU!!!!

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

      This helps SO MUCH Thank you

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

      Very very much tq may u live 109yrs

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

      thanks but still doesn't recognise it

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

      thanks dude, cant thank enough

  • @tzeakarecords5055
    @tzeakarecords5055 3 роки тому +43

    This tutorial: You can do this in maxim 25 minutes.
    Unity: No
    Me: After 5 hours working, you say " no"?

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

    if your character does a small bounce when you move on a flat surface try adding composite collider and add use composite onto the other collider, took me 8 hours to fix so ill save you some time

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

      I did that but it still didnt work:(

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

      @@bopatomen8864 is the green collider one big shape or mutipul little green squares

  • @billdosk
    @billdosk 4 роки тому +33

    for those who has the problem where the jumping animation keep looping in mid air, in unity in assets go to the folder in which you keep the animation folder once you found your jumping animation click on it once, and then look at the inspector,un check the loop options,after that just to make sure u have a good animation,increase the duration between the first frame and the second frame of your jumping animation,that should do the trick

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

      i found the problem with jumping animation should put exit time to 1

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

      @@RHCIPHER No that just loops it if the animation doesnt fully play: (

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

      @@cloudythb did you put a box collider 2D on your platform ?

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

      nvm it's on a player controller then uuuuuh

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

      player layer is not there when we choose what is ground please help

  • @jazzallen6537
    @jazzallen6537 4 роки тому +17

    I have used you for literally every step in my game dev journey, you are literally so good and useful. You make everything seem so easy

  • @heisocean344
    @heisocean344 4 роки тому +31

    Ok, so I feel compelled to add some of my own advice here. I was having the issue where my character is just constantly crouching upon hitting play.
    At first, I tried following Kota Pok (Parent of this comment thread) advice.
    His advice in his #4- the bit about changing the character controller script- that worked and made my character behave normally interms of being able to crouch and uncrouch.
    However, my character would allways stand up when I stop providing crouch input, even when there was a ceiling above him.
    In the end- I found that Brackey's chosen settings for his Player's "What is Ground" variable was throwing off my particular geometry for my colliders. The "What is Ground" variable can be modified in the "Characer Controller 2d (Script) section in your Player's Inspector in Unity.
    @3:10 Brackey's instructed us to set the "What Is Ground" variable to "Everything" and then unselect "Player"
    This ended up making everything mess up when it was time for detecting crouch collision.
    Basically, what I believe was happening (I'm still just a beginner), the "What is Ground" variable was being set to any of the other layers that we checked in that step. Consequently, when the collision check was being conducted between the ciling object and the ground object, whatever the ground was being set to was so far away that no collision was being detected between the two, and your player is being permitted to stand up because of that.
    So, what I did was-
    Like Kota Pok said in the parent comment, set "k_CeilingRadius" to .05f instead of .2f
    In Unity editor- Select Player and under Character Controller Script in the Player inspector, select the exact layer (or layers) you need to be the ground. For me, all of the platforms and terrain and obstacles I had set to my middle layer, so I could easily just set "What is Ground" to my middle layer.
    Do not use Kota Pok's 4th suggestion if this sounds like your problem

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

      so, should the ground(the one I am walking on) and crouchpiece(the one I am trying to duck under) be same layers or diferent?

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

      Bro you helped me

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

      very very helpful thank you

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

      i dont understand what u mean by "kota pok's comment thread" is it someone that commented some advice here? cause im trying to find his comment but i can't

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

      Ya I am curious about the "kota pok's comment thread" bit as well. I am having the same issue where my character is constantly crouching even when the crouch variable is set to false.

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

    my boy big brack still helping me even after the channel ended...

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

    For anyone who turned up the gravity and are wondering why their character jitters when they land (or sometimes fall through the floor), set the collision detection on the player's rigidbody to continuous.

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

      @G19tube Gkouk You need to create it. Go Layer -> Add layer... and name any User Layer(in video it is 8) as Player

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

      @G19tube Gkouk save your script

  • @squrdyt5734
    @squrdyt5734 6 років тому +99

    To everyone commenting about this being bad for beginners I believe he made the code for people who aren't invested into CS yet so he wants the beginners to not have to do the boring stuff and lose interest before they get to see how awesome CS is.

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

      bro no matter when they do it it wont change the fun factor

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

      as a beginner who has never worked with unity before I found this video quite confusing... It seems like he's doing magic over there. He just writes 'jump' and through some wierd mysterious magic process it somehow works. Where did he tell the program how jumping should work? How did all of that happen. I am so confused right now....

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

      @@kilianlang3316 this is a joke right? r/wooosh? now IM confused :/

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

      C++ and C# is not the same (I've learned C++ but I need for Unity C# :/)

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

      @@kilianlang3316 Then you shouldn't start off with this video then...

  • @stoan5776
    @stoan5776 6 років тому +231

    Yes we want to see animation!! And wallsliding in 2d!!

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

      yes , that's what we want :))

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

      That would be great!

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

      Please

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

      You could do a wallslide by raycasting to the left and right of the player to see if there is a wall, and checking if the player is moving towards said wall, where you could then lower the gravity the object feels while it's on the wall to make it fall slower to simulate a slide.

    • @Maik8885
      @Maik8885 6 років тому

      Yeah, *YAY!

  • @GibbaGods
    @GibbaGods 3 роки тому +13

    me: strugles with making charachter jump.
    Brackeys: now its time to make our charachter crouch and this is almost as simple as jumping.

  • @MakoRuu
    @MakoRuu 3 роки тому +83

    I didn't realize it was so complicated to get a character to move.

  • @Sketchy144
    @Sketchy144 4 роки тому +40

    Ok I noticed one why the "always crouch" effect happens: when you define every layer, including the player's, as ground AND the ceiling check is within the player's box collider.

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

      Thank you so much i have been trying to fix this for over an hour

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

      Hey what do you mean by "the ceiling check is withing the players box collider"? I changed the layer of the player from default to player but im still haveing the problem.

    • @MurderApp
      @MurderApp 3 роки тому +12

      Nevermind! there was an error in brackeys code from the description on line 67. There wasnt supposed to be an ! infront of the word crouch

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

      @@MurderApp thank you so much bro

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

      @@MurderApp Thank you very much, saved me a headache.

  • @mrman7009
    @mrman7009 4 роки тому +47

    A Fix for: "NullReferenceException: Object reference not set to an instance of an object
    PlayerMovement.FixedUpdate () (at Assets/PlayerMovement.cs:26)":
    - Go to the player (click on him)
    - Under "Player Movement (Script)", next to "Controller"; if it says "None (Character Controller 2D)", you need to change this to "Player (Character Controller 2D)" by clicking the little bullet-point icon to the right of the text box and selecting "Player".

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

      Thankyou so much I didn't know why this was happening

    • @RavinderSingh-br1uo
      @RavinderSingh-br1uo 4 роки тому

      Thanks a trillion!!! I was just about to quit, u just saved me

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

      thank you so so much, i almost restarted.

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

      You saved me Mr. Man, you were my only hope.

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

      you are a god, thank you so much

  • @ATM-SAMU
    @ATM-SAMU Місяць тому

    Man you are the best in this.
    I watch your videos to practice my english because i speak spanish and i practicing my english SKILLS

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

    Hey, in case it goes over your head like it did for me because I missed it at the beginning of the video: don't forget to put Colliders on your floor and your platforms (a Tilemap Collider preferably!) or the player will fall and you'll scratch head wondering why!

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

      Hahaha a few hours of scratching your head

    • @thedruid1105
      @thedruid1105 6 років тому

      @stellarestuary thanks to you i didn't have to spend more than 30 min :P

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

      yes like me . scratched my head into oblivion. Thank you!!!

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

    thanks man i recreated everything for 2 hours just to find out that you can download it but a really great tutorial, hope to finish this playlist soon before the game jam starts. i am a beginner joining a game jam, which is really stupid if you ask me.

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

      I know this comment is 5 months old but I'm having the same experience in a few weeks, how was it for you?

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

      I mean that just means that you will understand it better than us "smart" people so you will really be the smart one

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

      what is the point in downloading this?

  • @rohanpatel2608
    @rohanpatel2608 6 років тому +53

    A wall grab and wall jump tutorial would be great!!!

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

      Quill 18 has an amazing character controller that includes that if you don't want to wait for brackys to make one :)

    • @Natsumi170
      @Natsumi170 6 років тому +7

      That's extremely easy. If (boolean "is touching wall" and boolean " is in the the air") {If (player presses jump button) Jump()}
      Wall jumping is enabled by default in Unity because you haven't programmed a way to check if the player is touching the ground, that needs to be implemented by the programmer.

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

      Thank you, I'm trying that :D
      3 booleans, one for touching ground tiles (previously tagged/with a ground class), one for walls and one for "while in the air" (when no ground or wall is checked, but it could be avoided if I just use wall and ground == false)
      Wonder if I can give types to tiles using Unity tilemap

    • @kahlialynch2504
      @kahlialynch2504 6 років тому

      Or you can add a physics material and bump the friction up to one

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

    I came back Brackeys for seeing your videos after 1 year!!

  • @guvoia
    @guvoia 9 місяців тому +4

    jump wasn't working so here is what i did to make it work:
    - create a layer and name it ground
    - assign your objects to what you want as the ground to the layer you just made
    - in characterController2d script > in private void awake() > add m_WhatIsGround = layerMask.getMask("ground");
    -in playerMovement2d script > change getButtonDown > to just getButton

  • @sra2907
    @sra2907 4 роки тому +17

    We don't want the player to walk ontop of himself hahaha, made my day!

  • @blockay4392
    @blockay4392 3 роки тому +99

    Me: Does everything right
    Unity:
    Me: Wait, Unity, are you actually going to let me do this without you saying "NO"
    Unity: Yeah you win this time I will let you do what you want and it will work
    Me: aw thanks man
    Unity: RIGHT AFTER YOU FIX ALL THESE COMILER ERRORS!
    Me: AHHHHHHHH!

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

      I can 100% relate to that

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

      Update to a newer version, unity 2020.2 has no errors.

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

      player layer is not there when we choose what is ground please help

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

      @@sameerop2100 you have to create the layer yourself i assume. Theres an ADD LAYER setting when you choose a layer.

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

      @@polly5229 thanks for your help I figured it out now

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

    Just a note for people who may want to do this project. If you use the character controller script as given, then the player will always crouch. But if go to line 67 of the character controller code and change it to *if (crouch){* instead of *if (!crouch){* , then this will fix that issue.

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

      This is exactly what I needed thank you!

  • @milesmumme3611
    @milesmumme3611 4 роки тому +47

    Me: tries to drag and drop the character controller. Unity: N O

    • @Panyo.0
      @Panyo.0 4 роки тому +1

      same

    • @Panyo.0
      @Panyo.0 4 роки тому

      @Sir monkeyman thanks

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

      @Sir monkeyman I did that and it still will not work

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

      drag it into assets and from there drag it onto your player

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

      @@tylerfrancois2194 tried it didn't work

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

    For all those whos crouch is not working there is a mistake in the downloaded controller.
    All you do to fix it is go to line 67 and change (!crouch) to (crouch), the script dev must of made a mistake in recent updates.

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

      Thank you so much, you actually saved me!!!!!! I was so confused

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

      crouch is not working

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

      @Huran How did you solve iy then?

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

      wow thank you so much :D

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

    Thank you! This solved so many problems in my project

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

      Oh MrLuchs auch hier xD

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

      bei mir funktionirt der bewegungs code nich

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

    Just went to Uni to study game design and development and that video have already helped me out in my first project.

  • @Kiki-deLucio
    @Kiki-deLucio 5 років тому +4

    This worked, thank you so much!! I've struggled with the problem of movement for 3 days now

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

    Man, thank GOD I found this channel.
    sad they are no longer plublishing videos anymore, but everything here is just SO HELPFULL!!!!
    Thanks guys, you've made an awesome job and learning developers around the world salute you!

  • @Adam-rp7wz
    @Adam-rp7wz 3 роки тому +3

    If your using basic shapes turn on air control to move

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

      Dude thank you this solved my issue. Could you explain why this fixes it? I set up my colliders exactly like he did

    • @Adam-rp7wz
      @Adam-rp7wz 3 роки тому

      @@melon5345 if your character is shaped weirdly and has different colliders than it should it might clip into the ground

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

    Miss these guys....

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

    I'm coming from 2029 and i can tell you Brackeys is still one of the best teachers

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

      all i care about is that barca is awful

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

      then why the fuck doesn’t this work

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

    For anyone else having trouble with the jump, make sure your ground Layer is set to something other than default

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

    me at the beginning of the coding part: "i dont understand anything"
    In between the jump and crouch part: "I UNDERSTAND IT!!!!"
    at the end: "no i dont"

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

    Amazing video! Clearly explained everything, I was trying for hours to get this to work but once I watched your video it worked in minutes.

  • @tejanbah3216
    @tejanbah3216 3 роки тому +18

    when you find that you are unable to crouch go to "Character Controller 2D" then go to line 67 change (!Crouch)
    to (Crouch)

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

      Thanks, that worked!

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

      thanks

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

      you're very attractive

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

      Thx. My box collider was just turning on and off in infinit loop- this (!Crouch) was the problem:)

  • @andrewyannik7136
    @andrewyannik7136 3 роки тому +5

    Thanks Brackeys, my character finally moves. Thanks for making this tutorial, it really helped .👍

  • @andrewvaughan3825
    @andrewvaughan3825 6 років тому +43

    Bit of a jump in this series dude. We've gone from setting up a basic scene in Ep.1, to you having a demonstration scene set out with player sprite, box colliders on the terrain etc. No explanation of how to set box colliders on a tileset :( Please don't skip ahead so quickly with no explanation!

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

      " No explanation of how to set box colliders on a tileset", dude... click the tileset and click the box collider. there is nothing hard about that.

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

      @@Affe71 took me a solid few minutes to figure out, i put the box collider on the wrong thing shit happens

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

      @@toystoryjohn8457 box colliders work but i would use tile map colliders if all you want is for the player to walk on tiles.

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

      @@Affe71 i tried using those but it wasnt working with a sloped ground right

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

      @@Affe71 This is what the OP is complaining about. Legitimate complaint, I had the same one. Brackeys doesnt talk about how he set his scene up at all.

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

    Just gonna mentioned they used this fox model design in the game Indigo Park as a mini game and I loved them using this! "I RECOGNIZE YOU" I said when I got into the minigame. Love it

  • @neopiru7904
    @neopiru7904 6 років тому +290

    this doesnt't get me anywhere ... you should actually explain how to code those movements rather than use premade code. It's nice and all but at the end of the day I still don't get it how this works on the basic level and it takes me nowhere. It's just workaround for the actual topic

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

      I tried learning but it's so boring just do what the tutorial says

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

      that's how it was when I started.

    • @DrewSunn
      @DrewSunn 6 років тому +17

      @Scar Or you can just accept that people do things differently than each other and not try to shoot down a potential future game dev.

    • @matthewbevilacqua8605
      @matthewbevilacqua8605 6 років тому

      @Scar Im doing it as a hobby m8 I'll learn l8er

    • @matthewbevilacqua8605
      @matthewbevilacqua8605 6 років тому

      @Scar You're making me think I shouldn't become a game dev then...

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

    If someone has the problem where the player just keeps falling trough ground/block,just make sure that the "thing" the player is falling on to has the BOX COLLIDER 2D,and not 3D!!!

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

      thanks so much i overlook alot

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

      And if you have a Tile map you should be able to:
      Add component > tilemap collider 2d > add
      and it should automatically setup the collider boxes based on the tilemap!

    • @UC-Doctor
      @UC-Doctor 4 роки тому

      @@fazilllay WE LIKE U

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

    For those who can't jump:
    Move the Groundcheck (of your player) a bit more down. It fixed my player's jump.

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

      still not working

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

      ua-cam.com/video/n4N9VEA2GFo/v-deo.html

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

      this saved me, thank you

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

    I didn't want to click on this video but it was better then the other videos I saw so I had to sub

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

    I was having the issue below:
    NullReferenceException: Object reference not set to an instance of an object
    PlayerMovement.FixedUpdate ()
    Here's the solution that worked for me:
    In Unity, click on your player and check the Player Movement script in the Inspector window. The Controller parameter will be set to "None (CharacterController2D)" by default. Click on the arrow on the right and change the controller to your player and that should do the trick!

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

      OH my... thank you so much lol

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

      YES ! THIS IS IT! TY !!!!!!

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

    I will tell you a piece of advice download the whole project to save your head from all that headache I tried every single way as a beginner when you get better you may want to learn how he wrote everything and such but a beginner to beginner "DOWNLOAD THE WHOLE PROJECT " it's the third link in the video description!

  • @mint3912
    @mint3912 4 роки тому +5

    UA-camr: *makes a game making tutorial*
    Game Monkey ad: Is For Me???

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

    I love it. Making a platformer where you control a riding sheep and didn't have a script to use. This really helped!

    • @GilbertHernandez-eg8dx
      @GilbertHernandez-eg8dx Рік тому

      that game sounds fun, did you made it?

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

      @@GilbertHernandez-eg8dx yeah it sucked lol, it was for my dads birthday and you just walk around with no air control and have to get all the grass but the controls are annoying and also I stopped the thread for delay back then cuz I didn’t know about subroutines so everything stopped whenever you got grass, it’s on my itch though the-mayday-man itch io

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

    I LOVED THE WHOLE VIDEO :D
    Your way of explaining everything to a fine detail, what does the code do, what do variables do, situations and what not. A complete lesson/tutorial.
    I'll be enjoying all your content. This video makes everything seem so easy and workable... just how i like it

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

    dude, you are awesome! as a beginner, these vids are SUPER helpful!

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

    Hi guys! I couldn't make my player jump (and i tried EVERYTHING) but I finally figured it out!! It's because I forgot to put the Ground/CeilingCheck objects under the Player objects (as children) xD Maybe this will help some of you

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

      14 hours after you commented you already helped me lmao thanks

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

      @@littledude52 Bahahha that's amazing!! xD Glad I could help

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

    I'm definitely going to need this for my game.
    The crouching and jumping parts were surprisingly simple compared to what I've seen before.
    The player controller takes a lot of work to create, so that speeds things up a lot.

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

    ATTENTION: if you are having the problem that your character is not showing up when testing the game, your camera is not able to see it because of its z-axis.
    THE PROBLEM: click on your camera and goto clipping planes. If you look at the clipping planes it will probably show 0.3 in the near slot and 1000 in the far slot. This is the z-axis something needs to be on to show up.
    TO FIX THIS:
    Click on the item that is not working and change its z-axis to be within the range of the clipping ranges near and far values. (between 0.3 and 1000).
    OR
    change your near to -10000 and your far to 10000.

  • @TimTraV
    @TimTraV 6 років тому +37

    Is there a way to create levels using tilemaps and collision is already set up? Because I'm having struggle creating decent slope collision.
    Edit: Google is your friend.. if anyone else is looking for this -> there is a component called "tilemap collider 2d". Just add it to the gameobject with your ground and wall tiles.

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

    my dear friends he forgot to mention that u have to add box collider to both forground elements also

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

      lol thats so obvious watch the first episode dumbass

  • @RAY-mt3wj
    @RAY-mt3wj 3 роки тому

    this guy is soo underrated !!

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

      Hey so im doing the tutorial but his script looks completely different then mine and im trieng to do as him but it doesnt work so i would appreciate if you could help me out

  • @PabTSM-OfficialChannel
    @PabTSM-OfficialChannel 4 роки тому +12

    So now we wanna do thi-
    (shows dramatic trailer)
    *BRUH THAT IS SO HARD*

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

      ua-cam.com/video/YzCF3zbfUE0/v-deo.html

  • @johno378
    @johno378 6 років тому +47

    I forgot to freeze the rotation so when I started the game my player was drunk.

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

    You should do a series of teaching the Unity documentation/API.

  • @준혁김-n3u
    @준혁김-n3u 4 місяці тому

    I know I'm too late for this video, but your explanation helped me to solve double jump problem!!! So thx ^^

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

      Im guessing your problem was that your character could jump while in mid air, if that's the case, what was your solution because I cant seem to figure out how to get rid of it.

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

    I'm new at this so ima make a jumping moving square

  • @jovannovakovic5975
    @jovannovakovic5975 6 років тому +641

    Coding your own games is easier than you think

    • @thepotatoduke1948
      @thepotatoduke1948 6 років тому +206

      Jovan Novakovic you know, YoU sHouLd takE ThiS onLinE UniTY cOURse oN UDeMY.

    • @antopilo7418
      @antopilo7418 6 років тому +48

      IT STARTED PLAYING AS I WAS READING YOUR COMMENT.

    • @ChadRockwell
      @ChadRockwell 6 років тому +29

      But have you heard about skillshare?

    • @tarsierontherun
      @tarsierontherun 6 років тому +24

      Hello, this is code monkeyand

    • @proccessingunit2337
      @proccessingunit2337 6 років тому +30

      Sometimes I consider getting Adblock to save my sanity, but then I remember that the ads support the users I watch

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

    Make sure that you set the players 'Layer' to 'player' instead of 'default'. If you don't, your player will stay crouched at all times. Also, make sure you drag the box collider into the 'Crouch Disable Collider'. You do not have to change the code in any way it's correct.

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

      It took me days to identify my mistake. I hope this helps

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

      Oh my god, thank you! I've been looking for days too for this now haha...

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

    Nice glasses my man!

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

    Me: Follows The Tutorial in every littel step
    Unity: May we intrest you in 333 Errors?

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

    If anybody have a problem with jumping - don't forget move ground check down under character :)

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

      Thx man, i have lost like 15 min. for that stupid error :D

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

      Oh my gosh thank u so muuuuch

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

      it work's for me after trying many ideas think you

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

    Credit to a user by the name of Jay Tomk: for all getting the “NullExceptionError object not in instance of an object” or whatever it says, you have to click where it says “none(CharacterController2D)” in the playermovement component and change it from “none” to whatever you have your player character named

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

      Still doesn't work, idk

    • @greeny.69
      @greeny.69 4 роки тому

      @@giventeacher5653 same problem

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

      You have to Drag your player to "controller" slot in PlayerMovement in unity

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

      Thanks

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

    For those people who can't afford to donate on patreon you can kind of pay him by waiting till the very end of the video for another ad to show up

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

    17:58. Don’t mind me I’m just marking my spot

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

    15:01 If You can't find "physics material 2D" right click on "assets" then go to Create > 2D > "Physics Material 2D"

  • @joshuatong7390
    @joshuatong7390 4 роки тому +165

    Anyone having trouble with the script? Compiler errors?

    • @giuseppepizzuto98
      @giuseppepizzuto98 4 роки тому +11

      controller.Move(horizontalMove * Time.fixedDeltaTime, false, false);
      im having a problem here,it says the move command cant take 3 arguments

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

      My comment wasn’t intended to help people I was actually asking for help, However I do know that the problem might be in the spelling of your code. You might also want to add spaces on both sides of the “*” thing

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

      @@joshuatong7390 thanks ill try

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

      If ur keyboard has curly inverted commas “ like that instead of straight it won’t work so just copy paste that from the internet idk is that’s the problem so if u type out the whole error I’ll try to help

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

      Make sure the title just after public class is the same as your script name. For example, if my script was called PlayerMovement.cs then the first line of code (after the "using" scripts) would have to be public class PlayerMovement : MonoBehaviour. Hope this helps :P

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

    We miss you man

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

    the problem of newbie watching tutorials is when it is not updated, and you start encountering errors

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

    Are you planning to make this a series Brackeys?

  • @이준우-m4n
    @이준우-m4n 5 років тому +4

    very useful for me
    i cant understand speech but i follow video and than i get a technique
    thanks very much

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

    Don't know bout you guys but i got it right the first time..payed a lot of attention :) thank you Brackeys, if one day i might get rich i'm gonna give you some of my earnings, cheers!

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

    Hi! I'm a huge fan of your videos, but I really think it would be helpful if you created a follow up video explaining how to use tile map colliders??? Sorry, I'm just really confused with how they work and can't seem to find any good explanations anywhere 😂

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

      i know you made this 4 years ago but i used tilemap colliders and they didn't really work they were super buggy so i just used edge colliders and box colliders it was more and took time but it was easier and didn't break

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

    For Jumping Animation Solution:
    On CharacterController2D script
    In the statement "if (m_Grounded && Jump)" it returns this: "m_Grounded = false"
    this should be changed to "m_Grounded = true"

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

      THANK YOU! I spent a whole hour trying to fix it

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

      @@GUYAV you are welcome, me too 😂

    • @Phoenix-0455
      @Phoenix-0455 2 роки тому

      @@weikee7610 its... the same thing. If you don't specify it will default to true :)

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

      @@Phoenix-0455 got the bug there 😄

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

      OMG thankyou so much. i was finding this solutions everywhere

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

    Hey Brackeys, I would really like to know what each character in C# stands for. For example, what does this () mean, and when to use it, or what does this mean and when to use it, or what coloured words (Rigidbody/Transform/Vector3) stand for, and how we can combine all these to make a code that Unity understands. I've watched tutorials for C#, and even though I can technically understand how a script is executed, I still can't understand why in some paragraphs, you have these (), , coloured Words.

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

      its different ways of referring to things so that unity understands your code

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

      the coloured words are for quality of life probably and its easier to remember when colors are involved

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

    Awesome video