如果玩家在两个位置之内,我将它设置在一个物体落下的位置,它会再次上升。如果玩家不在重力设置为零的位置之间。它确实下降并上升,但如果我走出两个位置,物体继续上升而不会停止。如果玩家在附近,我正试图在马里奥重建岩石巨石。 (质量= 1,线性拖动= 0,固定角度=已检查,运动=未检查,插值=无,睡眠模式=开始唤醒,碰撞检测=连续)
//the positions where gravity is set to zero
if (rockk.transform.position.y > 4.0 && player.transform.position.x < 59)
{
rockk.rigidbody2D.gravityScale = 0f;
a = 0;
}
if (rockk.transform.position.y > 4.0 && player.transform.position.x > 64)
{
rockk.rigidbody2D.gravityScale = 0f;
a = 0;
}
//go up , -1.2 is the ground
if (rockk.transform.position.y < -1.2 )
{
rockk.rigidbody2D.gravityScale = -1f;
}
//go down
if ( rockk.transform.position.y > 4.0 && player.transform.position.x >59 && player.transform.position.x < 64)
{
rockk.rigidbody2D.gravityScale = 1f;
a = 1;
}
答案 0 :(得分:0)
当您将重力比例重置为0时,您的Rigidbody仍具有速度。没有阻力,它永远不会停止。尝试类似:
rockk.rigidbody2D.gravityScale = 0f;
rockk.rigidbody2D.velocity = Vector2.zero;
此外,在较新版本的Unity中不推荐使用rigidbody2D属性。你可能想尝试类似的东西:
Rigidbody2D body = GetComponet<Rigidbody2D>();
body.gravityScale = 0f;
body.velocity = Vector2.zero;