Unity3d Unity2d跳跃式传送

Unity3d Unity2d跳跃式传送,unity3d,unityscript,Unity3d,Unityscript,我正在处理Unity2d Sprite,但有点不对劲:在我的代码中,当我按下“跳跃”按钮时,我的角色会像传送一样跳跃,它会向上快速移动。重力是9,刚体的质量是1。我的代码是: ifisGrounded==true&&moveH==0{ 如果输入.GetKeyDownKeyCode.J{ anim.SetBoolstr_跳跃,正确; //rgBody.velocity=新矢量20,跳跃高度; //rgBody.AddForceVector2.up*跳跃高度; transform.position=

我正在处理Unity2d Sprite,但有点不对劲:在我的代码中,当我按下“跳跃”按钮时,我的角色会像传送一样跳跃,它会向上快速移动。重力是9,刚体的质量是1。我的代码是:

ifisGrounded==true&&moveH==0{ 如果输入.GetKeyDownKeyCode.J{ anim.SetBoolstr_跳跃,正确; //rgBody.velocity=新矢量20,跳跃高度; //rgBody.AddForceVector2.up*跳跃高度; transform.position=新向量2 transform.position.x, 变换.position.y*跳跃高度; isfounded=false; } }
如果跳转太高,则必须使用变量修改跳转的高度。在本例中,您使用jumpHeight作为变量来修改跳转的高度

降低跳跃高度可以解决您的问题。请注意,如果jumpHeight声明为公共浮动jumpHeight;,必须从编辑器或函数中更改变量,因为它不会使用声明时分配给它的数字。它将使用从编辑器分配给它的任何内容

例如,当公共浮动跳线高度=4时;但在编辑器中将该值设置为0,0将用作值,而不是4

此外,还必须使用rgBody.AddForceVector2.up*jumpHeight;。取消对它的注释,然后删除transform.position=new Vector2transform.position.x,transform.position.y*jumpHeight;代码行


如果这不能解决您的问题,那么您必须用完整的代码更新您的问题。

如果跳转太高,您必须使用变量修改跳转的高度。在本例中,您使用jumpHeight作为变量来修改跳转的高度

降低跳跃高度可以解决您的问题。请注意,如果jumpHeight声明为公共浮动jumpHeight;,必须从编辑器或函数中更改变量,因为它不会使用声明时分配给它的数字。它将使用从编辑器分配给它的任何内容

例如,当公共浮动跳线高度=4时;但在编辑器中将该值设置为0,0将用作值,而不是4

此外,还必须使用rgBody.AddForceVector2.up*jumpHeight;。取消对它的注释,然后删除transform.position=new Vector2transform.position.x,transform.position.y*jumpHeight;代码行


如果这不能解决您的问题,那么您必须用完整的代码更新您的问题。

要进行良好的跳跃,您还可以使用rgBody.AddForceVector2.up*jumpHeight、ForceMode2D.pulse;它模拟了对对象的影响,您得到了一个很好的跳跃模拟

别忘了申报公众浮标jumpHeigt=4f;就像程序员以前说的


我希望它能对你有所帮助。

要跳得好,你也可以使用rgBody.AddForceVector2.up*jumpHeight,ForceMode2D.pulse;它模拟了对对象的影响,您得到了一个很好的跳跃模拟

别忘了申报公众浮标jumpHeigt=4f;就像程序员以前说的


我希望它能对您有所帮助。

简单地降低jumpHeight值将解决跳转太高的初始问题

但是,如果您想要更真实的“跳跃”,您可能需要使用Rigidbody2D.velocity,只需使用rgBody.velocity=新矢量2RGBody.velocity.x,jumpHeight;应该创造一个很好的平滑跳跃


如果使用Rigidbody2D.velocity而不是简单地更改变换,则意味着您可以更改重力比例等值,这将对玩家的移动产生明显的影响。您可以使用不同的跳跃高度和重力比例值进行游戏,以找到最适合您的游戏

简单地降低jumpHeight值将解决跳转过高的初始问题

但是,如果您想要更真实的“跳跃”,您可能需要使用Rigidbody2D.velocity,只需使用rgBody.velocity=新矢量2RGBody.velocity.x,jumpHeight;应该创造一个很好的平滑跳跃


如果使用Rigidbody2D.velocity而不是简单地更改变换,则意味着您可以更改重力比例等值,这将对玩家的移动产生明显的影响。您可以使用不同的跳跃高度和重力比例值进行游戏,以找到最适合您的游戏

使用transform.position'+='而不是仅仅使用'='。这样你就增加了它的位置,而不是将它设置为某个特定的数字,这就是为什么它会像那样进行远程传送。虽然这种方法只适合水平运动,在我看来,如果它是一个侧视游戏。对于跳跃,使用AddForce会更好

使用transform.position'+='而不是仅仅使用'='。这样你就增加了它的位置,而不是将它设置为某个特定的数字,这就是为什么它会像那样进行远程传送。但这种方法只适用于m的水平运动 你认为这是一场侧视游戏。对于跳跃,使用AddForce会更好