统一跳跃问题,角色根本不跳跃

时间:2020-02-08 14:35:35

标签: unity3d

(这是2D项目)

我的角色需要左右奔跑并跳上地面。这是我第一次体验Unity及其最新版本,我设法使我的角色在改变方向时左右移动并翻转,但是根本不会跳动。

对于角色,我目前正在使用2 Box Collider 2D和Rigidbody 2D。角色的质量等于1。

地面,我目前正在使用2个Box Collider 2D。地面是单个精灵,它覆盖屏幕的底部。

下面是我当前尝试使用的跳跃和停飞代码。

'''
{


public float maxSpeed = 10f;

public float jumpVelocity = 10f;

private bool isGrounded;

private float move = 0f;

private Rigidbody2D rb2d;       //Store a reference to the Rigidbody2D component required to use 2D Physics.

private SpriteRenderer sprt_render;

// Start is called before the first frame update
void Start()
{
    rb2d = GetComponent<Rigidbody2D>();

    isGrounded = true;
}

// Update is called once per frame
void Update()
{
    GetInput();

}

private void GetInput()
{
    move = Input.GetAxis("Horizontal");


    if (transform.position.x > -6.2 && transform.position.x < 5.7)
        {
            rb2d.velocity = new Vector2(move * maxSpeed, rb2d.velocity.y);
        }
    else
        {
            rb2d.velocity = new Vector2(move * maxSpeed * -1, rb2d.velocity.y);
        }

    if (Input.GetKeyDown(KeyCode.Space) && isGrounded)
    {
          Debug.Log("Jump");
          rb2d.velocity = new Vector2(rb2d.velocity.x, jumpVelocity);
          isGrounded = false;
          //rb2d.AddForce(Vector2.up * jumpVelocity, ForceMode2D.Impulse);

    }
}

private void OnCollisionEnter2D(Collision2D collision)
{
    if (collision.gameObject.CompareTag("Ground"))
    {
        isGrounded = true;
    }
}

}

'''

如您所见,我尝试使用两种不同的方法结合使用Velocity实现跳转,并且使用AddForce结果完全相同,即使是第一次也没有跳转。我检查过断点,它肯定会通过跳跃代码,但是什么也没发生。

0 个答案:

没有答案