Question by 
               RancidWheel · Mar 22, 2017 at 08:35 PM · 
                2d gamejumpjumpingcharacter controllercharacter movement  
              
 
              how to jump in a 2D game
i wrote this code. i learnt it with 3D, and i tried with 2D (changing the components to 2D) the right and left moving work, but the jump is not working. how can i fix it?
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class ControlliTastiera : MonoBehaviour
 {
 
     public float velocitah;     
     public float forzaSalto;        // = jumpForce
 
     // Use this for initialization
     void Start()
     {
 
     }
 
     // Update is called once per frame
     void Update()
     {
 
         Rigidbody2D Corpoh = this.GetComponent<Rigidbody2D>();
 
 
         if (Input.GetKey(KeyCode.RightArrow))
         {
             Vector3 nuovaPos = this.transform.position;
             nuovaPos.x += Time.deltaTime * velocitah;
             this.transform.position = nuovaPos;
         }
         if (Input.GetKey(KeyCode.LeftArrow))
         {
             Vector3 nuovaPos = this.transform.position;
             nuovaPos.x -= Time.deltaTime * velocitah;
             this.transform.position = nuovaPos;         // nuovaPos = newPos
         }
 
         if (Input.GetKey(KeyCode.UpArrow))
         {
             Vector3 salto = new Vector3();
             salto.y = forzaSalto;           // salto = jump (in italian)
             Corpoh.AddForce(salto);         
         }
 
 
     }
 }
               Comment
              
 
               
              Answer by PPenar · Mar 22, 2017 at 09:07 PM
Change:
 if (Input.GetKey(KeyCode.UpArrow))
              {
                  Vector3 salto = new Vector3();
                  salto.y = forzaSalto;           // salto = jump (in italian)
                  Corpoh.AddForce(salto);         
              }
to:
 if ( Input.GetKey(KeyCode.UpArrow) )
         {
             Vector2 salto = new Vector2();
             salto.y = forzaSalto;           // salto = jump (in italian)
             Corpoh.AddForce(salto,ForceMode2D.Impulse);
         }
 
Answer by RancidWheel · Mar 25, 2017 at 01:54 PM
@PPenar thank, it worked. now i've a new problem... i want to add the isGrounded Property, i tried this code but it's not working well:
 void Update(){
 
 ......
 
     if ((Input.GetKeyDown(KeyCode.UpArrow))&(aTerra))
         {
             Vector2 salto = new Vector2();
             salto.y = forzaSalto;           // salto = jump (in italian)
             Corpoh.AddForce(salto, ForceMode2D.Impulse);
         }
 
     }
 
 private void OnCollisionEnter(Collision collision)
     {
         if (collision.gameObject.tag== "TagTerra")
         {
             aTerra = true;
         }
     }
 private void OnCollisionExit(Collision collision)
     {
         if (collision.gameObject.tag== "TagTerra")
         {
             aTerra = false;
         }
     }
how can i fix the jump section?
Your answer
 
 
             Follow this Question
Related Questions
Character landing 0 Answers
Can't get my character controller to jump properly (3d) 1 Answer
Jump logic issues 0 Answers
How can I modify this to allow jumping with space? 0 Answers
I can't do jump in my 2D game 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                