Unity3D-Rigidbody
挂载Rigidbody的Gameobject受物理引擎的作用,有真实的物理力学。
Mass质量:物体的质量(任意单位)。建议一个物体的质量不要多余或少于其他单位的100倍。
Drag阻力:当受力移动时物体收到的空气阻力。0表示没有空气阻力,极大时物体立即停止运动。
Angular Drag角阻力:当受扭力旋转的时候物体受到空气阻力。0表示没有空气阻力,极大时物体立即停止运动。
Use Gravity使用重力:若激活,物体受重力影响。
Is Kinematic是否运动学:若激活,物体不受物理引擎驱动,而只能通过变换来操作。适用于模拟的平台或者模拟模拟受铰链关节连接的刚体。
Interpolate插值:当你发现刚体运动时抖动,可以尝试下面选项。
- None无:No Interpolation is applied。不引用插值。
- Interpolate内插值:基于上一帧的变换来平滑本帧变换。
- Extrapolate外插值:基于下一帧的预估变换来平滑本帧变换。
Collision Detection碰撞检测:碰撞检测模式。用于避免高速物体穿过其他物体,却未触发碰撞。
- Discrete不连续:不连续碰撞检测。使用不连续碰撞检测模式来与场景中其他碰撞器进行碰撞检测。其他物体与它的碰撞检测也会应用这种模式。适用于普通碰撞(默认)。
- Continuous连续:连续碰撞检测。使用不连续碰撞检测来检测与动态碰撞器(刚体)的碰撞,使用连续碰撞检测来检测与静态网格(非刚体)的碰撞检测。采用连续动态碰撞检测模式的刚体碰见这类物体也将采用连续碰撞检测模式,而与其他刚体将采用不连续碰撞检测模式。这种模式适用于那些采用连续动态碰撞模式的物体碰撞的物体。(这对物理表现有很大的影响,如果你不关心与高速物体的碰撞,那就用默认的不连续模式)
- Continous Dynamic动态连续:连续动态碰撞检测。使用连续碰撞动态碰撞检测方式来检测与连续模式和连续动态模式的物体间的碰撞。也适用于静态网格(非刚体)的碰撞检测。而与之碰撞的其他模式的物体,采用的不连续动态碰撞检测模式。适用于高速物体。
Constraints约束:对刚体运动的约束。
Freeze Position冻结位置:刚体在世界中沿所选x、y、z移动无效。
Freeze Rotation冻结旋转:刚体在世界中沿所选x、y、z旋转无效。
只能通过transform改变。
Collider碰撞组件:用于检测俩个都携带Collider组件的GameObject碰撞。有以下属性:
isTrigger:碰撞器是否是触发器(可以穿越)
material:碰撞器所使用的物理材质
总结:
俩个物体要碰撞必须都有Collider,其中一个必须添加Rigidbody(最好在其中移动的物体添加)
俩个物体有一个勾选isTrigger则会穿越:
OnTriggerEnter();
OnTriggerExit();
OnTriggerStay();
否则进行碰撞:
OnCollisionEnter();
OnCollisionExit();
OnCollisionStay();
Properties变量
angularDrag | 角阻力 |
angularVelocity | 角速度 |
centerOfMass | 相对于原点变换的质心 |
collisionDetectionMode | 碰撞检测模式 |
constraints | 控制刚体模拟的自由度 |
detectionCollisions | 碰撞检测是否应用 |
drag | 阻力 |
freezeRotion | 控制是否改变物体旋转 |
inertia Tensor | 相对于重心质量的惯性张量对角线 |
inertia TensorRotation | 惯性张量的旋转 |
interpolation | 平滑插值 |
isKinematic | 是否运动学 |
mass | 质量 |
maxAngularVelocity | 最大角速度 |
maxDepenetrationVelocity | 当非穿透状态,刚体的最大速度 |
position | 位置 |
rotation | 旋转角度 |
sleepThreshold | 哪个对象开始进入休眠状态,质量归一的能力阈值 |
solverIterationCount | 允许你覆盖刚体求解的迭代次数 |
useConeFriction | 用于该刚体的锥形摩擦力 |
useGravity | 是否使用重力 |
velocity | 速度 |
worldCenterOfMass | 世界坐标中间的刚体的重心 |
Public Functions 公共方法
Add ExplosionForce | 添加一个爆炸力 |
AddForce | 添加一个力 |
AddForceAtPositon | 在position位置加一个力 |
AddRelativeForce | 添加力到刚体相对于它的局部坐标 |
Add relativeTorque | 相对于它的局部坐标添加扭力 |
AddTorque | 添加扭矩到刚体 |
ClosestPointOnBounds | 指定位置到刚体附加碰撞器的最近点 |
GetPointVelocity | 刚体在世界坐标,worldPoint速度 |
GetRelativePointVelocity | 刚体在局部坐标点速度 |
IsSleeping | 刚体是否在休眠 |
MovePosition | 移动新位置 |
MoveRotation | 旋转到新的角度 |
ResetCenterOfMass | 重置质心 |
ResetInertiaTensor | 重置惯性张量何旋转 |
SetDensity | 设置基于碰撞器的密度质量 |
Sleep | 强置刚体休眠 |
SweepTest |
如果一个刚体碰到任何东西触发测试(给刚体一个类似Physic.Raycast) |
SweepTestAll | 返回所有碰撞信息 |
WakeUp | 强制一个刚体唤醒 |
Unity3D-Rigidbody的更多相关文章
- unity3d中 刚体(Rigidbody) 碰撞体(Collider) 触发器(Is Trigger)
刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可 ...
- Unity3d 物理 Rigidbody预防穿插
Unity3d 物理 Rigidbody预防穿插 @广州小龙 Unity的物理引擎采用的是Physx引擎,里面的组件是Rigidbody!这个可以模拟物理效果! Rigidbody,这个是可以进行穿插 ...
- unity3d 通过添加rigidBody来指明物体是动态的,以避免cache开销
unity3d 通过添加rigidBody来指明物体是动态的,以避免cache开销. 如果不添加rigidBody,则unity会认为它是静态的,会对物理计算进行cache,但如果此物体实际上tran ...
- Unity3d刚体Rigidbody与碰撞检测Collider
做了一个碰撞的小Demo,用一个球去撞击一堵墙,结果在球和墙都设置了刚体和碰撞体的情况下,球穿过了墙.移动球的位置,球有时能穿过墙,有时会被墙阻挡. 对于球穿过了墙,这个问题,在网上找了一下答案,基本 ...
- [原]Unity3D深入浅出 - 物理引擎之刚体部件(Rigidbody)
在虚拟世界中,任何物体都是没有活力的,要想变的真实,Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性: Mass:质量 Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空 ...
- Unity3D碰撞器事件测试(Rigidbody/Kinematic/Trigger/Collider)
1.Kinematic和刚体之间的碰撞事件 Unity官方有一个详细的碰撞关系表:http://docs.unity3d.com/Manual/CollidersOverview.html 但其实可以 ...
- 使用Unity3D的设计思想实现一个简单的C#赛车游戏场景
最近看了看一个C#游戏开发的公开课,在该公开课中使用面向对象思想与Unity3D游戏开发思想结合的方式,对一个简单的赛车游戏场景进行了实现.原本在C#中很方便地就可以完成的一个小场景,使用Unity3 ...
- Unity3D游戏开发初探—3.初步了解U3D物理引擎
一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:“如果说我看得比较远的话,那是因为我站在巨人的肩膀 ...
- Unity3D游戏开发初探—4.开发一个“疯狂击箱子”游戏
一.预备知识—对象的”生“与”死“ (1)如何在游戏脚本程序中创建对象而不是一开始就创建好对象?->使用GameObject的静态方法:CreatePrimitive() 以上一篇的博文中的“指 ...
- Unity3D 5.x 简单实例 - 脚本编写
1,Vector3 类型变量存储向量坐标值 Vector3.forward Vector3(0,0,1) Vector3.up Vector3(0,1,0) Vector3.right Vector3 ...
随机推荐
- mybatis返回map结果集
今天突发奇想,想用mybatis返回一个map结果集,结果我就整了一下午,不过终于解决了 1.如果你确定返回的数据只有一条,你可以这样整 xml中: <select id="searc ...
- PHP WEB 引擎缓存加速优化
PHP 缓存加速器介绍 操作码缓存 请求一个 PHP 程序时,PHP 引擎会解析程序,并且将编译码作为特定操作码.这是要执行的代 码的一种二进制表示形式.随后,此操作码有 PHP 引擎执行并丢弃.操作 ...
- linuxCentOS6.8搭建Apache,用http访问svn
前提:SVN已经安装配置ok,可以正常访问 目前本人svn用小乌龟客户端svn协议访问地址为:svn://ip:3691/opt/svn/repository,端口后面的是svn仓库的路径 那么如果从 ...
- ui自动化之selenium操作(三)xpath定位
xpath 的定位方法,非常强大.使用这种方法几乎可以定位到页面上的任意元素. 1. 什么是xpath? xpath 是XML Path的简称, 由于HTML文档本身就是一个标准的XML页面,所以我们 ...
- react-native启动时红屏报错:Unable to load script.Make sure you're either running a metro server or that ....
一.报错信息内容 我是在Android Studio中运行启动react-native项目时报的这个错误 1.报错提示:Unable to load script.Make sure you're e ...
- 查看mysql数据库容量大小
第一种情况:查询所有数据库的总大小,方法如下: mysql> use information_schema; mysql> select concat(round(sum(DATA_LE ...
- 下载bat脚本
@rem 注释:从ftp服务器每小时下载北向性能文件的脚本 @rem 用vb脚本取昨天 for /f %%a in ('cscript //nologo yester.vbs') do set yes ...
- flask+gevent的异步框架
一:flask本身的框架时什么? 基于Wsgi的Web应用框架 二:为什么要实现异步架构? 增加并发处理能力 三:实现异步架构 from gevent import monkey from geven ...
- scrapy中的selenium
引入 在通过scrapy框架进行某些网站数据爬取的时候,往往会碰到页面动态数据加载的情况发生,如果直接使用scrapy对其url发请求,是绝对获取不到那部分动态加载出来的数据值.但是通过观察我们会发现 ...
- scrapy五大核心组件和中间件以及UA池和代理池
五大核心组件的工作流程 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. ...