在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;
}
}
解决了它。任何想知道这是答案的人。
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;
}
}