当前位置:   article > 正文

【Unity Rigidbody】如何消除AddForce带来的惯性?_unity取消物体惯性

unity取消物体惯性

1. 判断输入值是否大于0(我这里用了自定义的虚拟摇杆)

if (Mathf.Abs(scrollRect.output.x) > 0)

2. 判断当前速度是否达到最大速度(如果存在最大速度的话)

  1. if (Mathf.Abs(scrollRect.output.x) > 0)
  2. if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)

3. 若没达到最大速度,施加方向力(我这里是将摇杆的向量单位化,乘以力度的浮点值)

  1. if (Mathf.Abs(scrollRect.output.x) > 0)
  2. if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)
  3. rgb.AddForce(new Vector2(scrollRect.output.x, 0).normalized * moveForce);

4. 判断输入值是否等于0(也可以用else或else if),如果是,强制改变当前速度(我这里是2D平台动作游戏的情况,所以只需要将x轴的速度设为0,其他轴保持不变)

  1. if (Mathf.Abs(scrollRect.output.x) > 0)
  2. if (Mathf.Abs(rgb.velocity.x) <= maxSpeed)
  3. rgb.AddForce(new Vector2(scrollRect.output.x, 0).normalized * moveForce);
  4. if (scrollRect.output.x == 0)
  5. rgb.velocity = new Vector2(0, rgb.velocity.y);

(解决问题的方法很多,我只是提供一种思路,欢迎交流。)

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/89647
推荐阅读
相关标签
  

闽ICP备14008679号