在unity 2D中实现梯形图

本文关键字:实现 梯形图 2D unity | 更新日期: 2023-09-27 18:21:58

我正在尝试在unity中实现爬梯功能,我已经在一定程度上实现了。我把圆形对撞机放在角色的头顶上,这样它就可以检测梯子何时在他的头顶上。我想做的是,如果我按下向上键,它只会爬上梯子的一步并停留在那里。。但相反,当我停止按下向上键时,角色就会下降,如果我按下一次,角色就会继续上升。。我克服了刚体的引力,但运气不好。

void Update()
{
    if((isgrounded  || !doublejump) && Input.GetKey(KeyCode.Space) )
    {
        anim.SetBool( "Ground",false);
        rigidbody2D.AddForce(new Vector2(0,jumpforce));
        if(!doublejump && !isgrounded)
            doublejump = true;
    }
    if(Ladder && Input.GetAxis("Vertical")>0)
    {
        rigidbody2D.gravityScale =0;
        rigidbody2D.velocity = new Vector2(rigidbody2D.velocity.x,Input.GetAxis("Vertical")*maxspeed);
    }
    if(!Ladder)
    {
        rigidbody2D.gravityScale =1;
    }
}

在unity 2D中实现梯形图

解决了它。任何想知道这是答案的人。

void Update()
{
    if((isgrounded  || !doublejump) && Input.GetKey(KeyCode.Space) )
    {
        anim.SetBool( "Ground",false);
        rigidbody2D.AddForce(new Vector2(0,jumpforce));
        if(!doublejump && !isgrounded)
            doublejump = true;
    }
    if(Ladder && Input.GetAxis("Vertical")>0)
    {
        anim.SetBool("LadderUp",true);
        transform.Translate (new Vector2(0,0.2f) * Time.deltaTime*maxspeed);
        rigidbody2D.gravityScale =0;
    //  rigidbody2D.velocity = new Vector2(rigidbody2D.velocity.x,Input.GetAxis("Vertical")*maxspeed);
    }
    if(!Ladder)
    {
        anim.SetBool("LadderUp",false);
        rigidbody2D.gravityScale =1;
    }
}