所以我的跑步游戏出了点问题。
现在这个动作感觉很冷,因为我有动力,我必须停止走一条路去走另一条路,它给了我这种我不想要的真正的冰的效果。
我试过增加摩擦力,但那导致我的立方体从轨道上滚下来。
void FixedUpdate()
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
if (Input.GetKey("d"))
{
rb.AddForce(sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
if (Input.GetKey("a"))
{
rb.AddForce(-sidewaysForce * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
我想要的动作是漂亮的,流畅的,敏捷的。
发布于 2019-06-03 01:15:00
所以,首先:我建议不要使用AddForce来移动玩家,你可以只使用rb.velocity = sth;(这样可以去掉冰块)。但!如果你真的想这样做,我想你可以试试:
rb.AddForce(-rb.velocity*(from 0 to 1 the less the less icy) + (the speed you want to change to));
我想这会起作用的。尝试一下,但是,如果它是胶囊碰撞器,您可以潜入角色控制器,使一切看起来更好和更简单,或在刚体控制器(不是一个组件,只是一个名称,以定义您正在尝试的内容,但使用rb.velocity方法)。
希望它能起作用!
发布于 2019-06-03 20:08:52
也许是这样的:
Vector3 CalculatedForce = -rb.velocity;
CalculatedForce.z = forwardForce * Time.deltaTime;
if (Input.GetKey("d"))
CalculatedForce.x += sidewaysForce * Time.deltaTime;
else if (Input.GetKey("a"))
CalculatedForce.x += -sidewaysForce * Time.deltaTime;
rb.AddForce(CalculatedForce, ForceMode.VelocityChange);
https://stackoverflow.com/questions/56412050
复制相似问题