Unity3D学习笔记——RigidBody(刚体)
碰撞产生的必要条件,两个物体都要有碰撞器,至少一个物体有刚体。
作用
模拟力的作用效果。
组件参数面板
Mass - 质量
决定了物体的质量,默认单位为Kg。质量越大,惯性越大。
根据水平方向动能守恒(理想状态):
惯性越大的物体,在受到同等大小的力的时候受到的影响越小。
Drag- 阻力
物体受力移动时受到的空气阻力
当Drag大于0时,物体的速率会受到Drag的影响逐渐减小,直到为0。
Angular Drag - 角旋转阻力
角旋转时受到的阻力
当AngularDrag大于0时,物体旋转时的角速率会受到AngularDrag影响逐渐减小,直到为0。
Use Gravity - 启用重力
选择是否启用重力
在 Unity3D 中,默认的重力取值为 Vector3(0, -9.81, 0),如果需要更改重力值可以进入 Project Settings → Physics → Gravity 进行设置。(对于 2D 项目,需要进入 Physics 2D 进行更改。)
Is Kinematic - 是否为运动学
控制物体是否使用运动学
当这个打开的时候,物体就只能够通过修改Transform的方式去进行移动。
如果想要物体的运动不受其他力的影响,同时又需要保留Rigidbody属性,可以启用Is Kinematic。
一些不希望受到力的影响的物体包括:提供跳跃功能并且会移动的空中平台、敌人运动时的虚拟形象、以及静态触发器等。
Interpolate - 运动插值
控制是否开启运动插值
让刚体的移动更平滑。当物理帧更新过长的时候,就需要开启这个选项。
物体的物理方面的更新和FixedTimeStep有关,如果这个参数过大,那么物体的运动则会变得非常的生硬。如果开启了运动插值的话,那么即使FixedTimeStep很大,物体的运动看起来也是十分顺滑的。
当物体移动速率过快时,可能会看见物体一闪而过的情况。此时启用Interpolate,物体的移动会变得清晰顺滑,但是此功能一般很少使用。
None:不应用插值运算
Interpolate:根据前一帧的变换来平滑变换。
Extrapolate:根据下一帧的估计变换来平滑变换。
Collision Detection - 碰撞检测模式
用来防止快速移动的对象穿过其他对象而不检测碰撞。
物体之间是否发生碰撞是通过不断进行碰撞检测来判断的。由于这种原理,可能会出现下面这种情况:
红色拉杆快速旋转时穿过蓝色小球
Discrete - 离散碰撞检测
离散碰撞检测在某一个时间段内,碰撞检测的时间点是随机分布的。性能消耗低,最容易穿过去。
对场景中的所有其他碰撞体使用离散碰撞检测,用于正常碰撞(默认值)。
Continuous -连续检测
Continuous Dynamic - 连续动态检测
Continuous和Continuous Dynamic的共同点在于,对待没有刚体和设置为Continuous Dynamic的物体都使用连续碰撞检测,对待设置为Discrete的刚体的物体则使用离散碰撞检测。
不同点在于,Continuous Dynamic检测另一个设置为Continuous的物体时,仍然使用连续碰撞检测模式,而Continuous检测另一个Continuous的物体时,则使用离散碰撞检测。
(同离散,异连续)
这两种方法依赖于连续(线性)扫描技术,因此在物体旋转迅速的情况下,会忽略物体的角速度,仍然可能会穿过墙壁。
Continuous Speculative - 连续推测检测
比连续碰撞检测的成本更低。
在Unity2018.3版本中新添了Continuous Speculative方法,该会根据物体的线性运动和角运动预测物体在不受阻挡时下一步的位置(位置不确定,但是能够被延伸),并根据下一步位置与当前位置划定一个broad-phase axis-aligned的最小包围框。通过算法推测并且选取最小包围框中与墙壁(如果存在)可能发生碰撞的触点并进行记录,并将记录送入解算器,确保球体不会穿过墙壁。由于该算法是基于推测式的方法,所以开销会小于基于扫描式的算法。
性能消耗关系
Continuous Dynamic > Continuous Speculative > Continuous > Discrete
Constraints - 约束
选择时可以约束物体在某一轴上的旋转或移动(世界坐标方向)
锁定了该物体在世界坐标方向上X、Y轴的移动,X轴上的旋转的情况:
示例
Unity3D学习笔记——RigidBody(刚体)相关推荐
- Unity3D学习笔记(二、小球滚动吃金币)
源码:键盘方向键操作小球滚动吃金币Unity3D源码 下篇:Unity3D学习笔记(三.小球跑酷) 一.颜色材质球创建 二.Plane平板创建 三.围墙 同理二,新建Cube,并调整属性,设立围墙 ...
- Unity3D 学习笔记3——了解U3D引擎的操作面板和各种工具
Unity3D 学习笔记3--了解U3D引擎的操作面板和各种工具 在完成了Unity的安装破解之后,我们接下来要做的当前是启动这个引擎,然后学会如何去使用它为我们提供的各种工具,这也是上手任何一个软件 ...
- Unity3D 学习笔记4 —— UGUI+uLua游戏框架
Unity3D 学习笔记4 -- UGUI+uLua游戏框架 使用到的资料下载地址以及基础知识 框架讲解 拓展热更过程 在这里我们使用的是uLua/cstolua技术空间所以提供的UGUI+uLua的 ...
- Unity3D学习笔记6——GPU实例化(1)
文章目录 1. 概述 2. 详论 3. 参考 1. 概述 在之前的文章中说到,一种材质对应一次绘制调用的指令.即使是这种情况,两个三维物体使用同一种材质,但它们使用的材质参数不一样,那么最终仍然会造成 ...
- Unity3D学习笔记8——GPU实例化(3)
文章目录 1. 概述 2. 详论 2.1. 自动实例化 2.2. MaterialPropertyBlock 3. 参考 1. 概述 在前两篇文章<Unity3D学习笔记6--GPU实例化(1) ...
- unity3d 学习笔记四 skybox(天空盒) light(光源) halo(光晕)
Unity3D学习笔记(四)天空.光晕和迷雾 六年前第一次接触<魔兽世界>的时候,被其绚丽的画面所折服,一个叫做贫瘠之地的地方,深深印在我的脑海里.当时在艾泽拉斯大陆还不能使用飞行坐骑,试 ...
- Unity3D学习笔记:粒子特效参数
Unity3D学习笔记:粒子特效参数含义 转载 https://blog.csdn.net/asd237241291/article/details/8433534 粒子特效 粒子系统检视面板 初始化 ...
- 【GAMES103学习笔记】刚体(Rigid Body)
[GAMES103学习笔记]刚体(Rigid Body) 0 什么是刚体及刚体模拟 1 平移 1.1 平移运动 1.1.1 速度 1.1.2 位置 1.2 时间积分 1.3 半隐式欧拉 1.4 力的分 ...
- Unity3D学习笔记12——渲染纹理
文章目录 1. 概述 2. 详论 3. 问题 1. 概述 在文章<Unity3D学习笔记11--后处理>中论述了后处理是帧缓存(Framebuffer)技术实现之一:而另外一个帧缓存技术实 ...
最新文章
- 指纹锁就安全了?防火防盗还得防AI
- PTA基础编程题目集-6-5 求自定类型元素的最大值
- Oracle日常巡检
- 求最小生成树-Kruskal(克鲁斯卡尔算法)
- 基于tensorflow框架的神经网络结构处理mnist数据集
- vue-i18n使用及踩坑记录
- python3中input输入浅谈_详解Python3中的 input() 函数
- 豆瓣评分9.9!国内外口碑炸裂的强化学习圣经中文版终于来了!
- 流程图函数’怎么画_程序员必备画图技能之——流程图
- C++ 信息管理系统
- [python]-asyncio异步通信之websockets
- Windows 自带硬盘修复命令 CHKDSK
- 什么是铠装光纤跳线及它的特点?
- EPP-域名映射(RFC5731翻译)
- flutter插件开发学习之旅(4)-------检测GPS状态,打开GPS和显示经纬度实战
- INFOR-CRB开发教程
- 矽力杰代理商的增长与模拟信号
- 2022年终总结-两年Androider的成长之路
- ORACLE中的全连接(Full Join)、内连接(JOIN/INNER JOIN)、左连接(Left Join)、右连接(Left Join)、(+)符号以及Theta连接
- 幕客网html视屏压缩包,使用自动化工具gulp打包压缩项目