我试图用rigidbody.velocity动我的球员:刚体速度搞乱了物理UNITY
rigidbod.velocity = new Vector2 (Input.GetAxis ("Horizontal") * maxSpeed, rigidbod.velocity.y);
的问题是,这打乱了我的爆炸代码。在爆炸附近时,角色应该被击倒。我知道它为什么会发生。如果玩家仍然存在,则刚体的X速度将返回为0,这意味着任何推动玩家沿着X轴的外力都会抵消这种情况。所以当我添加爆炸的时候,玩家会在几个单位之外切换到新的位置。它看起来非常不自然和生涩,因为他应该被推回去,但他的代码告诉他,除非按下一个键,否则它仍然是。我正在发布这个消息,看看是否有任何方法可以重新编写此代码,以便在从外部正确推送玩家的同时移动玩家。我听说AddForce有效,但是当我使用它时,我的播放器速度不断增加。他的方式太快或太慢。关于如何让这个工作的任何想法?我试着在'maxspeed'之后添加一个rigidbody.velocity.x,希望它能够允许外部的力量输入,并且它可以工作,但是它扰乱了移动代码,使得他的速度太快了。我似乎无法同时让爆炸和移动代码正常工作。任何帮助将不胜感激。谢谢。
那究竟为什么你必须包括在'AddForce(...)的'*'Time.deltaTime'随时你正在复合他们在多个框架,因为我说 – maksymiuk
我不知道你是否得到我说的话。我在写的内容中确认了这一点。 AddForce的问题是我的播放器速度会不断增加。玩家没有达到最大速度。因此,如果持有单一方向,玩家就会变得疯狂。我在那篇文章中说过。我非常感谢你尝试提供帮助,但这不是我正在寻找的。不管怎么说,还是要谢谢你! @LOLslowSTir –
您可以在条件下使用速度。 'if(velocity.x
Kamalen