【Unity】Rigibody——刚体加力、刚体加扭矩力、刚体加力的几种模式
1.刚体自带添加力的方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Lesson17 : MonoBehaviour
{//声明一个成员变量,用来装获取到的刚体组件Rigidbody rigid;void Start(){//1.首先应该获取刚体组件,然后才能对这个刚体组件加力// 得到了自己挂载的刚体组件rigid = this.GetComponent<Rigidbody>();//2.添加力// 加力之后 对象是否停止移动是由刚体组件的阻力参数决定的// 如果阻力为0,那么给了一个力后,物体始终都不会停止移动// 2-1.相对世界坐标系// 参数1 力的方向和大小rigid.AddForce(Vector3.forward * 10);//补充:如果想在世界坐标系方法中 让对象向自己的面朝向移动//rigidBody.AddForce(this.transform.forward * 10);// 2-2.相对本地坐标系rigid.AddRelativeForce(Vector3.forward * 10);//3.添加扭矩力,让其旋转// 加扭矩力力之后 对象是否停止移动是由刚体组件的扭矩阻力参数决定的// 如果扭矩阻力为0,那么给了一个扭矩力力后,物体始终都不会停止移动// 3-1.相对世界坐标系// 参数1 绕那个轴 和速度rigid.AddTorque(Vector3.up * 10);// 3-2.相对本地坐标系rigid.AddRelativeTorque(Vector3.up * 10);//3.直接改变速度// 注意 这个速度的方向是相对于世界坐标系的rigid.velocity = Vector3.forward * 10;//4.模拟爆炸效果// 注意 只有执行了这个方法的刚体 才会受爆炸效果影响// 参数1 力的大小// 参数2 爆炸的中心点// 参数3 爆炸的半径rigid.AddExplosionForce(10, Vector3.zero, 10);}
}
2.力的几种模式
此知识点是根据加力 rigid.AddForce( ) 方法的基础上,添加第二个参数(是个枚举参数)
这四种枚举 只是力的计算方式不同而已,最终移动速度也不同
补充物理知识:
F:力
t:时间
v:速度
m:质量
动量定理公式:
Ft = mv
v = Ft/m
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Lesson17 : MonoBehaviour
{//声明一个成员变量,用来装获取到的刚体组件Rigidbody rigid;void Start(){//首先应该获取刚体组件,然后才能对这个刚体组件加力rigid = this.GetComponent<Rigidbody>();//1.Acceleration// 给物体增加一个持续的加速度,忽略其质量// v = Ft/m// F:(0,0,10)// t:0.02s// m:默认为1// v = 10 * 0.02 / 1 = 0.2m/s// 每物理帧移动 0.2m/s * 0.02 = 0.004mrigid.AddForce(Vector3.forward * 10, ForceMode.Acceleration);//2.Force// 给物体添加一个持续的力,与物体的质量有关// v = Ft/m// F:(0,0,10)// t:0.02s// m:2kg// v = 10 * 0.02 / 2 = 0.1m/s// 每物理帧移动 0.1m/s * 0.02 = 0.002mrigid.AddForce(Vector3.forward * 10, ForceMode.Force);//3.Impulse// 给物体添加一个瞬间的力,与物体的质量有关,忽略时间 默认为1// v = Ft/m// F:(0,0,10)// t:默认为1// m:2kg// v = 10 * 1 / 2 = 5m/s// 每物理帧移动 5m/s * 0.02 = 0.1mrigid.AddForce(Vector3.forward * 10, ForceMode.Impulse);//4.VelocityChange// 给物体添加一个瞬时速度,忽略质量(默认1)、忽略时间(默认1)// v = Ft/m// F:(0,0,10)// t:默认为1// m:默认为1// v = 10 * 1 / 1 = 10m/s// 每物理帧移动 10m/s * 0.02 = 0.2mrigid.AddForce(Vector3.forward * 10, ForceMode.VelocityChange);}
}
3.力场组件
除了上面的用代码加力,Unity还提供了加力的脚本
作用:更方便地给场景中的物体加力,让它转起来,仅仅是这个作用
【Unity】Rigibody——刚体加力、刚体加扭矩力、刚体加力的几种模式相关推荐
- 【Unity 22】 Unity 力,扭矩,刚体,触发器的简单使用
PS:本系列笔记将会记录我此次在北京学习Unity开发的总体过程,方便后期写总结,笔记为日更. 笔记内容均为 自己理解,不保证每个都对. Part 1 力 刚体.AddForce(): 常用的四种力模 ...
- 【简单图形解释】刚体上任意一点速度与刚体角速度的关系
1. 二维平面做圆周的质点速度与角速度关系: 2. 点的速度x,y方向分解: 3. 上面x不是表示矩阵的简单相乘,而是叉乘. 4. 回转刚体上任意一点速度与刚体角速度的关系 Reference: ht ...
- 台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式
台达PLC-EH3.铆压机,3轴,Z轴(SMC)电缸下降的距离用的是位置加扭矩模式,台达PLC MODBUS通讯控制台达A2伺服扭矩,自动上下料,每个点位可跳点,可设位置和扭矩,PLC程序有完整的注释 ...
- Unity项目打开闪退 提示”Unity 已存在 您无法加载相同的版本“
最近从unity hub打开项目的时候总是闪退回hub 可以新建新的项目打开,但是一旦关闭后,再次从hub打开就闪退 闪过提示" Unity 已存在 您无法加载相同的版本 " 然后 ...
- 饭统网CEO臧力:生存需要决定商业模式
饭统网CEO臧力:生存需要决定商业模式 http://www.sina.com.cn 2007年08月29日 15:54 新浪科技 8月29日上午,饭统网CEO臧力做客白银时代 .linkPlayR ...
- 在Arcmap中加载互联网地图资源的4种方法
在Arcmap中加载互联网地图资源的4种方法 前一段时间想在Arcmap中打开互联网地图中的地图数据,如影像数据.基础地图数据等,经过简单研究目前总结了四种方法,整理下与大家分享,有些内容可能理解有误 ...
- Linux下编译、链接、加载运行C++ OpenCV的两种方式及常见问题的解决
Linux下编译.链接.加载运行C++ OpenCV的两种方式及常见问题的解决 在Linux下安装完OpenCV C++之后(还没有安装的读者请参考Ubuntu 18.04 安装OpenCV C++) ...
- html加载swf 进度条,Flash加载外部文件创建进度条3种方法
Flash加载外部文件创建进度条3种方法 互联网 发布时间:2008-10-07 09:36:14 作者:佚名 我要评论 加载外部文件的进度条(看帮助文档整理),只适合那些不愿看帮助文档的 ...
- mysql 加序号以及成绩单排名的几种实现方式
首先 我们新建一个表,表信息如下: CREATE TABLE `report` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id ...
最新文章
- python 元组和列表区别_Python 基础(六):列表与元组
- 判断闰年 及其某天为这一年的多少天
- 如何用 CSS 和 D3 创作一个抽象的黑白交叠动画
- 远程断开远程桌面会话之方法
- 转:看问题的5个层次
- Python3 基础学习笔记 C09【文件和异常】
- 一份所有中国人都应该听的歌单,你听过几首?
- python tkinter数据库通讯录_TKINTER--GUI连接数据库登陆
- 一步一步写算法(之二叉树广度遍历)
- PyCharm主题更换
- 度分秒换算题及答案C语言,度分秒的换算题(度分秒计算100题及答案)
- 怎么查看Win7系统无线网络密码
- 2009年的MACBOOK苹果电脑重装MAC OS 10.8.5系统
- 火车头采集器php,火车头采集器3.0采集图文教程
- 关于nifty counters
- ASP.NET微信群机器人管家系统,源码分享
- Pyhton 裁剪视频尺寸 脚本
- redis缓存(redis缓存工具封装篇)
- 拉格朗日四平方和定理c语言,拉格朗日四平方定理的证明
- 阿里云网站注销备案的办法