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

之前我们总结过使用AddForce方法给刚体施加力:Unity 使用AddForce方法给刚体施加力详解-CSDN博客

 本文总结另外一个方法AddRelativeForce,本质上它们区别不大,都是给刚体施加一个持续的力,唯一区别就是施加力时候使用的坐标系不一样。

AddForce方法使用的是世界坐标系,而AddRelativeForce方法使用的是相对坐标系。这样导致最直观的结果就是同样的力作用在同一个物体上力的方向可能会存在差异。

回归本文重点,继续了解AddRelativeForce方法,它也有4个重载方法:

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

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

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

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

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

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

ForceMode.Force:施加一个持续的力,受质量mass影响。
ForceMode.Impulse:施加一个瞬间的冲击力,受质量mass影响。
ForceMode.Acceleration:施加一个持续的加速度,质量mass无影响。
ForceMode.VelocityChange:施加一个改变刚体速度的力,质量mass无影响。


void Start()
{Vector3 force = new Vector3(0f, 5f, 0f);rb.AddRelativeForce(force, ForceMode.Impulse);//给刚体施加一个瞬间冲击力
}

 4、AddRelativeForce(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无影响。

void Start()
{float xForce = 0f;float yForce = 0f;float zForce = 20f;rb.AddRelativeForce(xForce, yForce, zForce, ForceMode.Acceleration); //给刚体上施加一个持续的加速度
}

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

使用该方法施加力给刚体效果如下:

Unity 使用AddRelativeForce方法给刚体施加力效果

我们会发现,使用该方法,施加力是相对于自身坐标系统,所以当物体体位变了,调用同样的方法力时作用方向也改变了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229509.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB - MPC - QP Solvers

系列文章目录 前言 模型预测控制器 QP 求解器将线性 MPC 优化问题转换为一般形式的 QP 问题 受到线性不等式约束 其中 x 是解向量。H 是黑森矩阵。当预测模型和调整权重在运行时不发生变化时,该矩阵保持不变。A 是线性约束系数矩阵。当预测模型在运行时不发生变化时…

Eclipse 自动生成注解,如果是IDEA可以参考编译器自带模版进行修改

IDEA添加自动注解 左上角选择 File -> Settings -> Editor -> File and Code Templates&#xff1b; 1、添加class文件自动注解&#xff1a; ​/*** <b>Function: </b> todo* program: ${NAME}* Package: ${PACKAGE_NAME}* author: Jerry* date: ${YEA…

介绍strncpy函数

strncpy函数需要引用#include <string.h>头文件 函数原型&#xff1a; char *_Dest 是字符串的去向 char *_Source是字符串的来源 size_t_Count是复制字符串的大小 #include <stdio.h> #include <string.h> int main() { char arr[128] { \0 }; …

【JAVA-Day69】抛出异常的精髓:深度解析 throw、throws 关键字,优雅处理异常问题

抛出异常的精髓&#xff1a;深度解析 throw、throws 关键字&#xff0c;优雅处理异常问题 &#x1f680; 抛出异常的精髓&#xff1a;深度解析 throw、throws 关键字&#xff0c;优雅处理异常问题 &#x1f680;一、什么是抛出异常 &#x1f60a;二、如何抛出异常 &#x1f914…

什么是计算机网络?计算机网络基础知识

1.网络的组成部分&#xff1a;由主机&#xff0c;路由器&#xff0c;交换机等组成 2.网络结构&#xff1a;网络的网络 3.信息交换方式&#xff1a;电路交换和分组交换 4.网络分层&#xff1a;分清职责&#xff0c;物理层&#xff0c;链路层&#xff0c;网络层&#xff0c;运…

IDEA中如何使用Vue

一、在IDEA中安装Vue插件 1.先点击File-->Settings-->Plugins 2.点击进去后在Marketplace下的搜索框搜索Vue.js插件进行下载&#xff0c;下载完后点击Install 3.上一步操作进行完后&#xff0c;点击Installed在其搜索框下搜索Vue插件并且进行勾选&#xff0c;勾选后点…

0x23 剪枝

0x23 剪枝 剪枝&#xff0c;就是减少搜索树规模&#xff0c;尽早排除搜索树中不必要的分支的一种手段。形象地看&#xff0c;就好像剪掉了搜索树的枝条&#xff0c;故被称为“剪枝”。在深度优先搜索中&#xff0c;有以下几类常见的剪枝方法&#xff1a; 1.优化搜索顺序 在一…

MetaAI语音翻译大模型Seamless登场,主打AI无缝同声传译

论文题目&#xff1a; Seamless: Multilingual Expressive and Streaming Speech Translation 论文链接&#xff1a; https://ai.meta.com/research/publications/seamless-multilingual-expressive-and-streaming-speech-translation/ 代码链接&#xff1a; GitHub - facebook…

DSP捕获输入简单笔记

之前使用stm32的大概原理是&#xff1a; 输入引脚输入一个脉冲&#xff0c;捕获1开始极性捕获&#xff0c;捕获的是从启动捕获功能开始计数&#xff0c;捕获的是当前的计数值&#xff1b; 例如一个脉冲&#xff0c;捕获1捕获上升沿&#xff0c;捕获2捕获下降沿&#xff1b;而两…

爬虫工作量由小到大的思维转变---<第十二章 Scrapy之sql存储与爬虫高效性的平衡艺术>

前言: (本文仅属于技术性探讨,不属于教文) 刚好&#xff0c;前阵子团队还在闲聊这个问题呢。你知道吗&#xff0c;在数据收集这个行当里&#xff0c;怎么存数据这问题就跟“先有鸡还是先有蓝”一样&#xff0c;没完没了的循环往复。老规矩&#xff0c;咱们先搞清楚我们的“鸡…

reactive数据不响应

我们知道&#xff0c;reactive函数用于创建对象等复杂数据的响应式代理对象&#xff0c;当该对象的属性发生变化时&#xff0c;会自动触发视图更新。 但在Vue 3中&#xff0c;当我们使用reactive创建的对象或数组进行赋值时&#xff0c;尽管能够完成正常的赋值操作&#xff0c…

Linux 系统开机启动流程

可能没有完全理解&#xff0c;后期整理完Linux的内容&#xff0c;应该理解会深入一些&#xff0c;试着用更简洁的方式和图形来记录&#xff0c;以及一些概念的完善 2023-12-14 一、开机流程 BIOS MBR/GPT 加载 BIOS 的硬件信息与进行自检&#xff0c;并依据设定取得第一个可…

TrustZone之调试、跟踪和分析

接下来,我们将查看系统中的调试和跟踪组件,如下图所示: 现代Arm系统包括支持调试和性能分析的广泛功能。在TrustZone中,我们必须确保这些功能不能被用来危害系统的安全性。 关于调试功能,考虑开发新的SoC。不同的开发人员被信任调试系统的不同部分。芯片公司的工程…

第十九章 : Spring Boot 集成RabbitMQ(三)

第十九章 : Spring Boot 集成RabbitMQ(三) 前言 本章节重点:RabbitMQ消息确认机制的代码示例:生产者消息确认机制、Return消息机制、消费端ACK和Nack机制3种消息确认模式。 Springboot 版本 2.3.2.RELEASE ,RabbitMQ 3.9.11,Erlang 24.2消息确认的场景 使用RabbitMQ很…

SearchWP WordPress高级网站内容搜索插件(包含所有专业扩展)

点击阅读SearchWP WordPress高级网站内容搜索插件(包含所有专业扩展)原文 SearchWP WordPress高级网站内容搜索插件是一个非常强大的工具&#xff0c;可以显着增强您网站的搜索功能。通过向网站访问者提供高度相关和精确的搜索结果&#xff0c;它可以有效地简化他们的搜索过程…

C语言使用posix正则表达式库

在C语言中&#xff0c;你可以使用 POSIX 正则表达式库&#xff08;regex.h&#xff09;来进行正则表达式的模式匹配。POSIX 正则表达式库提供了一组函数来编译、执行和释放正则表达式。 下面是使用 POSIX 正则表达式库的基本步骤&#xff1a; 包含头文件 <regex.h>&…

项目管理软件助力科研项目管理

作为一名研究人员&#xff0c;你可能会觉得你的成功取决于你的研究有多创新和你工作有多努力。实际上&#xff0c;创新和勤奋很重要&#xff0c;但聪明地工作也很重要。如果你是那种在早上打开电子邮件并开始自上而下的工作的人&#xff0c;你可能很快就会发现你的电子邮件多得…

论文降重宝同义词替换功能的优势与特点 PaperBERT

大家好&#xff0c;今天来聊聊论文降重宝同义词替换功能的优势与特点&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff0c;可以借助此类工具&#xff1a; 标题&#xff1a;论文降重宝同义词替换功能的优势与特…

C# WPF上位机开发(函数运行时间分析)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 上位机除了基本功能和稳定性之外&#xff0c;还有一个要注意的就是运行效率的问题。如果我们想提高软件的运行效率&#xff0c;单位时间做更多的工…

GoLand couldn‘t start listener: listen tcp 198.18.0.45:53638

项目场景&#xff1a; 使用Goland以Debug的方式运行&#xff0c;无法启动 问题描述 GoLand couldnt start listener: listen tcp 198.18.0.45:53638按照提示去查看端口发现并没有占用清除Goland缓存重启没有用下载安装Delve还是无法启动 原因分析&#xff1a; debug的过程中…