我目前正在建设与能跳一个字一个小2D平台游戏。这是跳跃的外观(FixedUpdate):
if (jump)
{
if (isGrounded)
{
isGrounded = false;
rb.AddForce(Vector2.up * (jumpHeight * counterForJumpHeight) * Time.deltaTime, ForceMode2D.Impulse);
jump = false;
anim.SetBool("bool_anim_isJumping", true);
}
if (timer != null)
timer.Stop();
counterForJumpHeight = jumpMulitMin;
jumpAlreadCharging = false;
}
看上去很适合每一个跳起来,然后回落下来。
但是:当玩家只要下降(如悬崖奥德东西)不跳,它看起来像他有叶的质量。航行到地面extremley慢。没有加速的。刚刚落下的慢动作。当然可以了重心,但也影响了我的下跌后跳,并让他看起来像一块石头。仿佛下降时间是加快或东西。但是,这没有道理。他落下一个后跳和他刚脱落的东西应该是一样的吧?但它不。
这些都是我的RB值:
你可以在你人物的刚体质量,或增加编辑/ projectsettings /物理重力
我不是100%肯定,但是这可能与碰撞检测做。请尝试更改设置来连续动态,而不是离散的。
它可以与animator
一个问题,如果动画包含更改Rigidbody
,它怪异的东西,如果你已经设置的动画设为默认。
这一切都是我的错,没有从您的角度来看猜测它的方式。一切玩家可以从被标记为“can_jump”跳。
void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "can_jump") // detect collision with ground game object
{
isGrounded = true;
deacceleratePerFrame = 1.5f;
anim.SetBool("bool_anim_isJumping", false);
}
}
这包括所有的边缘。删除此意味着我不能跳ATM了,然而,这引起了问题。我肯定另谋出路:-)谢谢大家