- Home /
 
 
               Question by 
               Kingblade · Feb 07, 2014 at 10:11 PM · 
                collision2d-platformergravitywall  
              
 
              No gravity when running against a wall (2D)
I looked around and found this: http://answers.unity3d.com/questions/525048/2d-no-gravity-when-player-jumps-against-wall.html
But I don't understand how the answer worked for him. First of all, the package is importing 3d physics materials, and I tried to play around with the 2d materials and none of the things I tried work.
The walls have 2d box collides, and the player has the same thing with a non-kinematic 2d rigidbody and the following script:
 public class playerscript : MonoBehaviour {
     public float maxSpeed = 10f;
     bool facingRight = true;
 
     Animator anim;
 
     bool grounded = false;
     public Transform groundCheck = null;
     float groundRadius = 0.2f;
     public LayerMask whatIsGround;
     public float jumpForce = 700f;
 
     // Use this for initialization
     void Start () {
         anim = GetComponent<Animator>();
     }
     
     // Update is called once per frame
     void FixedUpdate () {
         grounded = Physics2D.OverlapCircle(groundCheck.position, groundRadius, whatIsGround);
         anim.SetBool("Ground", grounded);
 
         anim.SetFloat("vSpeed", rigidbody2D.velocity.y);
 
         float move = Input.GetAxis("Horizontal");
 
         anim.SetFloat("Speed", Mathf.Abs(move));
 
         rigidbody2D.velocity = new Vector2(move * maxSpeed, rigidbody2D.velocity.y);
 
         if (move > 0 && !facingRight)
         {
             Flip();
         }
         else if (move < 0 && facingRight)
         {
             Flip();
         }
     }
 
     void Update()
     {
         if(grounded && Input.GetKeyDown(KeyCode.Space))
         {
             anim.SetBool("Ground", false);
             rigidbody2D.AddForce(new Vector2(0, jumpForce));
         }
     }
 
     void Flip()
     {
         facingRight = !facingRight;
         Vector3 theScale = transform.localScale;
 
         theScale.x *= -1;
         transform.localScale = theScale;
     }
 }
 
               Thank you for your time :)
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by Kingblade · Feb 10, 2014 at 08:01 PM
So apparently... unity uses 0.4 friction as default and it should be changed to 0...
Your answer