Unity 使用AddForce方法给刚体施加力详解

要给刚体施加力,我们可以用AddForce方法,它有4个重载方法:

1、AddForce(Vector3 force);使用Vector3类型参数,可以分别向刚体按Vector3对象指定x、y、z分量施加力。使用该方法会对刚体施加一个持续的力。

Rigidbody rb;
Vector3 force = new Vector3(10f, 0f, 0f);
rb.AddForce(force);

2、AddForce(float x, float y, float z);使用3个float类型参数,x、y、z分别指施加于x、y、z轴上的分量。使用该方法会对刚体施加一个持续的力。

Rigidbody rb;
float xForce = 10f;
float yForce = 0f;
float zForce = 0f;
rb.AddForce(xForce, yForce, zForce);

事实上上面两个方法是等效的。只是使用参数类型不一样。

3、AddForce(Vector3 force, ForceMode mode);其中,参数force是施加的力的矢量,参数mode是一个枚举类型的参数,用于指定力的模式。模式有:

  • ForceMode.Force:施加一个持续的力,受质量mass影响。
  • ForceMode.Impulse:施加一个瞬间的冲击力,受质量mass影响。
  • ForceMode.Acceleration:施加一个持续的加速度,质量mass无影响。
  • ForceMode.VelocityChange:施加一个改变刚体速度的力,质量mass无影响。
Rigidbody rb;
void Start()
{
    Vector3 force = new Vector3(0f, 5f, 0f);
    rb.AddForce(force, ForceMode.Impulse);//给刚体施加一个瞬间冲击力
}

 

 4、AddForce(float x, float y, float z, ForceMode mode);其中,参数,x、y、z分别指施加于x、y、z轴上的分量。参数mode是一个枚举类型的参数,用于指定力的模式,模式有:

  • ForceMode.Force:施加一个持续的力,受质量mass影响。
  • ForceMode.Impulse:施加一个瞬间的冲击力,受质量mass影响。
  • ForceMode.Acceleration:施加一个持续的加速度,质量mass无影响。
  • ForceMode.VelocityChange:施加一个改变刚体速度的力,质量mass无影响。
Rigidbody rb;
void Start()
{
    float xForce = 0f;
    float yForce = 0f;
    float zForce = 20f;
    rb.AddForce(xForce, yForce, zForce, ForceMode.Acceleration); //给刚体上施加一个持续的加速度
}

 事实上3、4两个重载方法也是等下的,只是使用force参数类型不一样。

使用AddForce对刚体施加力,重点还是关注使用ForceMode参数不同模式得差异化,才能用起来得心应手。

这里模拟了个差异效果:

Unity使用AddForce方法给刚体施加力不同ForceMode参数参数的效果

相关推荐

  1. Unity 使用AddForce方法刚体施加详解

    2023-12-16 07:58:03       44 阅读
  2. Unity 使用AddRelativeForce方法刚体施加详解

    2023-12-16 07:58:03       38 阅读
  3. Unity刚体指定位置施加方法

    2023-12-16 07:58:03       40 阅读
  4. Unity 关于刚体模拟爆炸效果使用方法

    2023-12-16 07:58:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-16 07:58:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-16 07:58:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-16 07:58:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-16 07:58:03       20 阅读

热门阅读

  1. ubuntu-cvat标注工具部署

    2023-12-16 07:58:03       45 阅读
  2. coffee:使用AI构建和迭代React UI速度提高10

    2023-12-16 07:58:03       47 阅读
  3. Qt容器QDockWidget桌面的顶级窗口浮动

    2023-12-16 07:58:03       42 阅读
  4. go-zero目录结构和说明

    2023-12-16 07:58:03       34 阅读
  5. ubuntu+vscode+cmake 安装libtorch

    2023-12-16 07:58:03       39 阅读
  6. Groovy 基础学习1

    2023-12-16 07:58:03       32 阅读
  7. 某60内网渗透之frp实战指南1

    2023-12-16 07:58:03       40 阅读
  8. 4-Docker命令之docker cp

    2023-12-16 07:58:03       41 阅读
  9. EasyExcel

    EasyExcel

    2023-12-16 07:58:03      44 阅读
  10. vscode

    vscode

    2023-12-16 07:58:03      41 阅读
  11. Vue3中ref和reactive的区别

    2023-12-16 07:58:03       38 阅读
  12. 跨站点分布式多活存储建设方案概述

    2023-12-16 07:58:03       35 阅读