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 ...
随机推荐
- GitHub源码攻击事件
黑客擦除了微软多达392个代码存储库,并提出勒索要求.此前,黑客攻击了包含微软在内的大批受害者的Git存储库,删除了所有源代码和最近提交的内容,并留下了支持比特币支付的赎金票据. 勒索信息如下: “要 ...
- CentOS7 minimal安装初始化配置
个人喜好最小化安装系统,需要配置的如下信息 1.更改网络配置为固定ip #vi /etc/sysconfig/network-scripts/ifcfg-eth0BOOTPROTO="sta ...
- 牛顿迭代法——C语言
include <stdio.h> include <math.h> int main() { flaot solution(float a,flaot b,float c,f ...
- 修改 git log
修改最新的log git commit --amend git push -f #强制推送 修改历log git rebase -i HEAD~2 pick 1f639c0 222pick a8aef ...
- Spring mvc项目的web.xml以及注释
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp ...
- DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
行业领先的.NET界面控件DevExpress 日前正式发布v19.1版本,本站将以连载的形式介绍各版本新增内容.在本系列文章中将为大家介绍DevExpress WPF v19.1中新增的一些控件及部 ...
- Python之网路编程之粘包现象
一.什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原 ...
- tensorflow 中 name_scope和variable_scope
import tensorflow as tf with tf.name_scope("hello") as name_scope: arr1 = tf.get_variable( ...
- layui 获取iframe层的window
success: function (layero, index) { var iframeWin = $("div.layui-layer-content > iframe" ...
- 【leetcode】LCP 3. Programmable Robot
题目如下: 力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0).小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动.指令有两种: U: 向y轴正方向移动 ...