龙图教育:Unity3D内置了Physx物理引擎系统简单介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
龙图教育:Unity3D内置了Physx物理引擎系统简单介绍
Unity内置了NVIDIA的Physx物理引擎Physx是目前使用最为广泛的物理引擎被很多游戏大作所采用开发者可以通过物理引擎高效、逼真地模拟刚体碰撞、车辆驾驶、布料、重力等物理效果使游戏画面更加真实而生动。
Rigidbody刚体组件可使游戏对象在物理系统的控制下来运动刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件。
依次打开GameObject->Create Empty创建一个空游戏对象然后选择该对象打开菜单栏中的Component->Physics->Rigidbody如下图
Rigidbody组件的属性面板如下图
Mass质量该项用于设置游戏对象的质量
Drag阻力当对象受力运动时受到的空气阻力0表示没有空气阻力阻力极大时游戏对象会立即停止运动
Angular Drag当对象受扭矩力旋转时受到的空气阻力0表示没有空气阻力阻力极大时游戏对象会立即停止运动
Use Gravity使用重力若开启此项游戏对象会受到重力的影响
Is Kinematic是否开启动力学若开启此项游戏对象将不再受物理引擎的影响从而只能通过Transform属性来对其操作
Interpolate插值该项用于控制运动的抖动情况有3项可以选择None没有插值Interpolate 内插值基于前一帧的Transform来平滑此次的TransformExtrapolate外插值基于下一帧的Transform来平滑此次的Transform
Collision Detection碰撞检测该属性用于控制避免高速运动的游戏对象穿过其他的对象而未发生碰撞有3项可以选择Discrete离散碰撞检测该模式与场景中其他的所有碰撞体进行碰撞检测Continuous连续碰撞检测Continuous Dynamic连续动态碰撞检测模式
Constraints约束该项用于控制对于刚体运动的约束
Collides碰撞体碰撞体是物理组件的一类它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起除非两个对象有碰撞体时物理引擎才会计算碰撞在物理模拟中没有碰撞体的刚体会彼此相互穿过
选中游戏对象打开菜单栏中的Component->Physics->。。。如下图
Box Collider盒碰撞体盒碰撞体是一个立方体外形的基本碰撞体该碰撞体可以调整为不同大小的长方体可用作门、墙、以及平台等也可以用于布娃娃的角色躯干或者汽车等交通工具的外壳当然最适合用在盒子或是箱子上属性如下图
Is Trigger触发器勾选该项则该碰撞体可用于触发事件并将被物理引擎所忽略
Material材质
Center中心碰撞体在对象局部坐标中的位置
Size大小碰撞体再X、Y、Z方向上的大小
Sphere Collider球形碰撞体球形碰撞体是一个基于球体的基本碰撞体球体碰撞体的三维大小可以均匀等地调节但不能单独调节某个坐标轴方向的大小该碰撞体适用于落石、乒乓球等游戏对象
Radius半径球形碰撞体的大小
Capsule Collider胶囊碰撞体胶囊碰撞体由一个圆柱体和与其相连的两个半球体组成是一个胶囊形状的基本碰撞体胶囊碰撞体的半径和高度都可以单独调节可用在角色控制器或与其他不规则形状的碰撞结合来使用
Height高度该项用于控制碰撞体中圆柱的高度
Direction方向在对象的局部坐标中胶囊的纵向方向所对应的坐标轴默认是Y轴
Mesh Collider网格碰撞体网格碰撞体通过获取网格对象并在其基础上构建碰撞在与复杂网格模型上使用基本碰撞相比网格碰撞体要更加精细但会占用更多地系统资源
Smooth Sphere Collisions平滑碰撞在勾选该项后碰撞会变得平滑
Mesh网格获取游戏对象的网格并将其作为碰撞体
Convex凸起勾选该项则网格碰撞体将会与其他的网格碰撞体发生碰撞
Wheel Collider车轮碰撞体车轮碰撞体是一种针对地面车辆的特殊碰撞体它有内置的碰撞检测、车轮物理系统以及滑胎摩擦的参考体
Suspension Distance悬挂距离该项用于设置车轮碰撞体悬挂的最大伸长距离按照局部坐标来计算悬挂总是通过其局部坐标的Y轴延伸向下
Center中心该项用于设置车轮碰撞体在对象局部坐标的中心
Suspension Spring悬挂弹簧该项用于设置车轮碰撞体通过添加弹簧和阻尼外力使得悬挂达到目标位置
Forward Friction向前摩擦力当轮胎向前滚动时的摩擦力属性
Sideways Friction侧向摩擦力当轮胎侧向滚动时的摩擦力属性
Character Controller角色控制器角色控制器主要用于对第三人称或第一人称游戏主角的控制并不使用刚体物理效果
character controller组件属性如下图
Slope Limit坡度限制该项用于设置所控制的角色对象只能爬上小于或等于该参数值的斜坡Step Offset台阶高度该项用于设置所控制的角色对象可以迈上的最高台阶的高度
Skin Width皮肤厚度该参数决定了两个碰撞体可以相互渗入的深度较大的参数值会产生抖动的现象较少的参数值会导致所控制的游戏对象被卡住较为合理地设定上是该参数值为Radius值的10%
Min Move Distance最小移动距离如果所控制的角色对象的移动距离小于该值则游戏对象将不会移动
Center中心该参数决定了胶囊碰撞体再世界坐标中得位置
Radius:半径胶囊碰撞体的长度半径
Height高度该项用于设置所控制的角色对象的胶囊碰撞体的高度
Interactive Cloth交互布料交互布料组件可在一个网格上模拟类似布料的行为状态Skinned Cloth蒙皮布料蒙皮布料组件与蒙皮网格渲染器一起用来模拟角色身上的衣服如果角色动画使用了蒙皮网格渲染器那么可以为其添加一个蒙皮布料使其看起来更加真实、生动
Cloth Renderer布料渲染器