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

给刚体施加力,除了使用AddForce方法,我们还可以使用AddTorque方法。该方法是通过施加力矩给刚体以力。AddTorque方法从形式上跟AddForce差不多,它也有4个重载方法:

1、AddTorque(Vector3 torque);使用Vector3类型参数,表示力矩的大小和方向,力矩在刚体的局部坐标系下施加。下面案例rb统一使用变量private Rigidbody rb;

Vector3 torque = new Vector3(0f, 10f, 0f);
rb.AddTorque(torque);

2、AddTorque(float x, float y, float z);使用3个float类型参数,分别表示力矩在 x、y、z 轴上的大小,力矩在刚体的局部坐标系下施加。

rb.AddTorque(0f, 10f, 0f);

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

3、AddTorque(Vector3 torque, ForceMode mode);其中,参数torque表示力矩的大小和方向,参数mode表示力矩的作用模式。模式有:

  • ForceMode.Force:施加一个持续的力矩。
  • ForceMode.Impulse:施加一个瞬时的力矩。
  • ForceMode.Acceleration:施加一个持续的加速度力矩。
  • ForceMode.VelocityChange:施加一个改变刚体速度的力矩。
Vector3 torque = new Vector3(0f, 10f, 0f);
rb.AddTorque(torque, ForceMode.Impulse);

 4、AddTorque(float x, float y, float z, ForceMode mode);其中,参数,x、y、z表示力矩在 x、y、z 轴上的大小。参数mode是一个枚举类型的参数,用于指定力矩的作用模式,模式有:

  • ForceMode.Force:施加一个持续的力矩。
  • ForceMode.Impulse:施加一个瞬时的力矩。
  • ForceMode.Acceleration:施加一个持续的加速度力矩。
  • ForceMode.VelocityChange:施加一个改变刚体速度的力矩。
rb.AddTorque(0f, 10f, 0f, ForceMode.Impulse);

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

AddForce和AddTorque虽然看起来方法都差不多,但是它们还是有本质的区别的,

  • 首先AddForce方法是对刚体施加力,改变刚体的线性运动状态,即位置和速度,而AddTorque方法施加的是力矩,改变的是刚体的角度和角速度。
  • 其次它们的作用点不一样,AddForce方法作用于刚体的质心,即中心点,而AddForce作用域它的转动中心。

在窗口上我们看到它们作用力的变化区别是:一个直接改变Position的数值,而另外一个第一作用是改变Rotation,从而带动Position的变化。

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

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

相关文章

Python基础学习—Pandas数据分析实战剖析【文末送书-09】

文章目录 一.Pandas数据分析1.1 Pandas的主要应用包括:1.2 Pandas核心数据结构1.3 安装和导入Pandas 二.Pandas数据分析实战:用Python进行数据分析1. 数据集介绍2. 数据加载与初步观察3. 数据清洗4. 数据分析4.1 销售趋势分析4.2 热门商品分析 三.Pandas…

在官网免费创建一个云mongoDB数据库

MongoDB的设计目标是提供高性能、高可用性、可扩展性和易用性。它采用了文档存储模型,将数据以类似JSON的BSON(Binary JSON)格式存储,并且支持动态模式,允许应用程序更灵活地存储和查询数据。MongoDB还支持水平扩展&am…

.net 洋葱模型

洋葱架构 内层部分比外层更抽象(内层接口,外层实现)。外层的代码只能调用内层的代码,内层的代码可以通过依赖注入的形式来间接调用外层的代码 简单的例子,引用依赖图 demo 接口类库 EmailInfo using System; using System.Collections.…

算法-----全排列

目录 前言 代码 思路 我的其他博客 前言 全排列是一种组合数学的概念,它表示将一组元素按照一定顺序进行排列的所有可能情况。在计算机编程中,通常使用递归来实现全排列。以下是使用Java语言实现全排列的详细解释: 代码 public class Pe…

Orange Comet利用Sui Kiosk进行游戏道具和知识产权保护

Orange Comet与AMC合作开发基于《行尸走肉》系列的NFT和游戏,首要关注的问题就是保护AMC的知识产权。利用Sui的Kiosk原语不仅让Orange Comet向AMC保证其资产安全,而且为即将推出的《行尸走肉大陆》游戏打开了无限的可能性。 Kiosk是Sui上的一个原语&…

laravel8模块化开发laravel-modules

laravel8模块化开发laravel-modules 在laravel目录下打开git输入两行命令 $ composer require nwidart/laravel-modules $ php artisan module:make Admin 这个Admin就是文件名

antd+vue:tree组件:父级节点禁止选择并不展示选择框——基础积累

antdvue:tree组件:父级节点禁止选择并不展示选择框——基础积累 1.判断哪些是父节点,给父节点添加disabled属性——this.permissionList是数据源2.通过css样式来处理disabled的父节点3.完整代码如下: 最近在写后台管理系统的时候,…

文物数字化建模纹理贴图

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 1、文物3D数字化建模的特点 文物埋在地下历经千年,由于时…

常见数据结构

数据结构概述 数据结构是计算机底层存储、组织数据的方式,是指数据相互之间是以什么方式排列在一起的。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。 栈 栈数据结构的执行特点:后进先出,先进后出。 栈模型…

基于ssm一中体育馆管理系统的设计与实现论文

镇赉县一中体育馆管理系统的设计与实现 摘要 随着信息互联网购物的飞速发展,一般有能力的机构管理系统。本文介绍了镇赉县一中体育馆管理系统的开发全过程。通过分析企业对于镇赉县一中体育馆管理系统的需求,创建了一个计算机管理镇赉县一中体育馆管理…

spring 笔记八 SpringMVC异常处理和SpringMVC拦截器

文章目录 SpringMVC拦截器拦截器(interceptor)的作用拦截器和过滤器区别拦截器是快速入门拦截器方法说明 SpringMVC拦截器拦截器(interceptor)的作用拦截器和过滤器区别拦截器是快速入门拦截器方法说明 SpringMVC异常处理异常处理…

为了吃鸡苦练狙击,避免坑队友自己造一个狙击游戏!

引言 一文教会你造一个简易的狙击游戏。 说到狙击,相信大家都不陌生,无论是影视作品还是网络游戏,都经常能看到狙击枪的身影,最深刻的是它能够从百里之外,一枪爆头。 本文将介绍如何在Cocos Creator中造一个简易的狙…