【发布时间】:2015-10-04 22:29:37
【问题描述】:
我正在尝试使用rigidbody.velocity 来移动我的播放器:
rigidbod.velocity = new Vector2 (Input.GetAxis ("Horizontal") * maxSpeed, rigidbod.velocity.y);
问题是,这弄乱了我的爆炸代码。角色应该在接近爆炸时被击退。我知道为什么会这样;如果玩家静止不动,刚体的 X 速度将返回为 0,这意味着沿 X 轴推动玩家的任何外力都会抵消这一点。所以当我添加爆炸时,玩家会切到几个单位外的新位置。它看起来非常不自然和生涩,因为他应该被推回去,但他的代码告诉他要静止,除非按下一个键。我发布这篇文章是为了看看是否有任何方法可以重新编写此代码,以便能够在被外力正确推动的同时移动玩家。我听说 AddForce 可以,但是当我使用它时,我的播放器的速度不断增加。他枯萎太快或太慢。关于如何让它发挥作用的任何想法?我尝试在它说“maxspeed”之后添加rigidbody.velocity.x,希望它允许外力输入,并且它可以工作,但它会弄乱运动代码,让他走得太快。我似乎无法同时让爆炸和运动代码正常工作。任何帮助将不胜感激。谢谢。
【问题讨论】: