目前,我正在开发2D平台,工作进展顺利。但是有一个我无法摆脱的问题。
玩家可以使用破折号,这将使玩家非常快地朝他看的方向移动。我的问题是,玩家游戏对象瞬间会出现在目标位置,就像传送一样。
我正在使用AddForce函数移动游戏对象。在跳跃时,我也使用AddForce,在这里效果很好,我得到了平稳的跳跃运动。
破折号和跳跃之间的唯一区别是,在跳跃时,我将力施加到y轴,将破折号施加到x轴。更改力度不会仅影响移动的距离。
有人知道我在做什么错吗?
// Dash
rigidbody2D.AddForce (new Vector2((dashSpeed * direction), 0));
// Jump
rigidbody2D.AddForce (new Vector2(0, jumpForce));
最好,Verdemis :)
编辑:目前我无法访问我的项目,但是我将尝试向您展示我的所作所为。
注意:dashSpeed是一个浮点值,此刻类似于3500,方向包含1或-1,具体取决于玩家所看的方向。达世币代码是Update方法的一部分。
// Dash
if(Input.GetKeyDown(dashKey))
rigidbody2D.AddForce (new Vector2((dashSpeed * direction), 0));
好吧,我可以解决问题。我的问题是我只执行了一次此AddForce。AddForce代码仅在单个框架中执行。我加了一个倒计时来定义仪表板运动将持续多长时间的时间!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句