我正在努力实现统一的爬梯功能,并且我已经在某种程度上实现了它。我已经在角色头部的顶部放置了圆形对撞机,因此它可以检测到梯子在他头顶的时间。我想要做的是,如果我按下向上键,它只爬上梯子的一步并停留在那里。但是,一旦我停止按下向上键,角色就会下降,如果我按下它一次就会继续上升..我已经搞砸了刚体的引力,但没有运气。
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;
}
}
答案 0 :(得分:2)
解决了它。有人想知道这是答案。
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;
}
}