统一3d跳跃很短

时间:2017-06-13 14:42:31

标签: unity3d

当我的pnj正在运行时(按下右键)并尝试跳转pnj跳转。但很少,我怎么能解决这个问题呢?

当我按下右键时,这不是问题,但是我想在没有失败的情况下制作游戏,我想在io跑步时跳跃,谢谢

 void Update () {
        if (Input.GetKeyDown (KeyCode.Space)) {
            if (corriendo) {
                if (enSuelo || !dobleSalto) {
                    GetComponent<Rigidbody2D> ().velocity = new Vector2 (GetComponent<Rigidbody2D> ().velocity.x, 0);
                    GetComponent<Rigidbody2D>().AddForce(Vector2.up * fuerzaSalto);
                    if (!dobleSalto && !enSuelo){
                        dobleSalto=true;
                    }
                }
                corriendo = true;
            }
        }

        if ((enSuelo || !dobleSalto) && Input.GetKeyDown (KeyCode.Space)) {
            GetComponent<Rigidbody2D> ().velocity = new Vector2 (GetComponent<Rigidbody2D> ().velocity.x, 0);
            GetComponent<Rigidbody2D>().AddForce(Vector2.up * fuerzaSalto);
            if (!dobleSalto && !enSuelo){
                dobleSalto=true;
            }
        } 

        if (Input.GetKey (KeyCode.RightArrow) && enSuelo==true) {
            if (velocidad > 17) {
                velocidad = 17;
            }

            GetComponent<Rigidbody2D> ().velocity = new Vector2 (GetComponent<Rigidbody2D> ().velocity.x, 0);
            GetComponent <Rigidbody2D> ().AddForce (Vector2.right * velocidad);
            velocidad++;
        } else {
            if (velocidad > 1) {
                velocidad--;
            } else {
                velocidad = 0;
            }

        }   
    }

1 个答案:

答案 0 :(得分:1)

尝试在AddForce中添加额外的变量(Vector2.right * velocidad * jumpFactor)

你可以给incrementFactor一个值,这样你就可以修改跳跃的长度。