Zephus 发表于 2023-2-28 16:28

unity 人物跳跃 高度不稳定?

1.使用velocity进行跳跃。 那个重力的公式只是让人物跳跃更舒服一些。类似于超级玛丽。 然后判断是grounded采用Physics2D.OverlapCircle。
问题产生:我可以一直按住跳跃键,人物落地后马上再次跳跃。当我同时使用位移摇杆的时候,人物如果从一个地方调到了一个高处或者从高处跳到了低处。人物的跳跃高度就会发生变化。有时候很低。有时候超高。

求 问题的成因 和解决办法
void FixedUpdate ()
    {

      var rb2d = GetComponent();
      rb2d.velocity = new Vector2(joystick.Horizontal * speed*Time.fixedDeltaTime, rb2d.velocity.y);
      grounded = Physics2D.OverlapCircle(circlePoint.position, 0.1f, groundLayer);

      if (grounded&&!jump && joybutton.Pressed)
      {

            Debug.Log(Physics2D.gravity.y);
            rb2d.velocity += Vector2.up *Physics2D.gravity.y*-1*highpower*Time.deltaTime;
                jump = true;
      }
      if (jump && joybutton.Pressed)
      {
            jump = false;
      }

    }

acecase 发表于 2023-2-28 16:36

换个浦东的硬盘
再不行换爱丁堡的

franciscochonge 发表于 2023-2-28 16:45

题主代码中第二处Time.deltaTime是否应该改为Time.fixedDeltaTime?
页: [1]
查看完整版本: unity 人物跳跃 高度不稳定?