Unity 2d jumping script

后端 未结 3 1814
北恋
北恋 2021-01-02 01:37

Does anyone have a good jumping script for 2d games in unity? The code I have works but still is far from jumping, it looks like it is flying.

using UnityEng         


        
相关标签:
3条回答
  • 2021-01-02 02:02

    Use Addforce() method of a rigidbody compenent, make sure rigidbody is attached to the object and gravity is enabled, something like this

    gameObj.rigidbody2D.AddForce(Vector3.up * 10 * Time.deltaTime); or 
    gameObj.rigidbody2D.AddForce(Vector3.up * 1000); 
    

    See which combination and what values matches your requirement and use accordingly. Hope it helps

    0 讨论(0)
  • 2021-01-02 02:18

    Usually for jumping people use Rigidbody2D.AddForce with Forcemode.Impulse. It may seem like your object is pushed once in Y axis and it will fall down automatically due to gravity.

    Example:

    rigidbody2D.AddForce(new Vector2(0, 10), ForceMode2D.Impulse);
    
    0 讨论(0)
  • 2021-01-02 02:20

    The answer above is now obsolete with Unity 5 or newer. Use this instead!

    GetComponent<Rigidbody2D>().AddForce(new Vector2(0,10), ForceMode2D.Impulse);
    

    I also want to add that this leaves the jump height super private and only editable in the script, so this is what I did...

        public float playerSpeed;  //allows us to be able to change speed in Unity
    public Vector2 jumpHeight;
    
    // Use this for initialization
    void Start () {
    
    }
    // Update is called once per frame
    void Update ()
    {
        transform.Translate(playerSpeed * Time.deltaTime, 0f, 0f);  //makes player run
    
        if (Input.GetMouseButtonDown(0) || Input.GetKeyDown(KeyCode.Space))  //makes player jump
        {
            GetComponent<Rigidbody2D>().AddForce(jumpHeight, ForceMode2D.Impulse);
    

    This makes it to where you can edit the jump height in Unity itself without having to go back to the script.

    Side note - I wanted to comment on the answer above, but I can't because I'm new here. :)

    0 讨论(0)
提交回复
热议问题