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来平滑此次的Transform;Extrapolate:外插值,基于下一帧的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:布料渲染器

Hinge Joint:铰链关节,铰链关节由两个刚体组成,该关节会对刚体进行约束,使得它们就好像被连接再一个铰链上那样运动,它非常适用于对门的模拟,也适用于对模型及钟摆等物体的模拟

Fixed Joint:固定关节,固定关节组件用于约束一个游戏对象对另一个游戏对象的运动

Spring Jonit:弹簧关节,弹簧关节组件可将两个刚体连接在一起,使其像连接着弹簧那样运动

Character Joint:角色关节主要用于表现布娃娃效果,它使扩展的球关节,可用于限制每一个轴向上的关节

Configurable Joint:可配置关节,可配置关节组件支持用户自定义关节,它开放了physx引擎中所有与关节相关的属性,因此可像其他类型的关节那样来创造各种行为

力场是一种为刚体快速添加恒定作用力的方法,适用于类似火箭等发射出来的对象,这些对象在起初并没有很大的速度但却是再不断加速的

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

unity3D游戏开发十一之物理引擎相关推荐

  1. 七巧板平台html5游戏开发之初识物理引擎

    七巧板平台html5游戏开发之初识物理引擎 七巧板平台是用于Web App.中轻度HTML5游戏及富媒体类应用开发,集开发.运营于一体的平台.它基于HTML5技术开发,具有进入门槛极低.开发极简单.跨 ...

  2. Unity3D游戏开发初探—3.初步了解U3D物理引擎

    一.什么是物理引擎? 四个世纪前,物理学家牛顿发现了万有引力,并延伸出三大牛顿定理,为之后的物理学界的发展奠定了强大的理论基础.牛顿有句话是这么说的:"如果说我看得比较远的话,那是因为我站在 ...

  3. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  4. Unity3D游戏开发-宣雨松读书摘要(2015-4-17 18:36)

    本书基于Unity3.5编写,通过丰富的游戏实例,以JavaScript与C#两种语言介绍Unity开发. Unity3D游戏开发-宣雨松 序 它支持JavaScript.C#.Boo三种脚本语言 ...

  5. 【Unity3D游戏开发学习笔记】(六)上帝之手—GameObject的操作

    在Unity中,所有实体都属于游戏对象(GameObject),比如外部导入到场景中的模型,Unity自带的立方体等等,而要将这些GameOject进行管理,交互等操作,则需要用到脚本来实现,上一节我 ...

  6. Unity3D游戏开发初探—2.初步了解3D模型基础

    一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被. ...

  7. Unity3D游戏开发之邂逅Unity3D

    从今天起,博主决定要在毕业前把大学里想学的东西都学完.所以,从今天起,大家将看到由我为大家带来的Unity3D系列文章,让我们一起来学习Unity3D游戏开发吧! 在正式今天的文章之前,博主想简单介绍 ...

  8. Unity3D游戏开发介绍

    Unity3D游戏开发介绍 Unity3D Unity是实时3D互动内容创作和运营平台.包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助Unity将创意变成现实. Unity平台提供一整 ...

  9. 2019该怎么学unity3D游戏开发?

    Unity 3D本来是由德国的一些苹果粉丝开发的一款游戏引擎,一直只能用于Mac平台,所以一直不被业外人士所知晓.但是后来也推出了2.5版,同时发布了PC版本,并将其发布方向拓展到手持移动设备.怎么学 ...

最新文章

  1. 解决:UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position错误
  2. 栈和队列在python中的实现
  3. 绩效管理领域对管理者的任务和能力要求
  4. python解释器工作原理_Python解释器执行原理
  5. windows系统上安装mysql操作过程及常见错误处理
  6. ubuntu下谷歌开源的TensorFlow Object Detection API的安装教程
  7. VS 2015 64位CMake编译openCV3.1.0必备文件
  8. IOS开发学习----给表视图设置缩进级别
  9. Linux FrameBuffer分析
  10. biopython有什么用_用Biopython解析BLAST结果
  11. MacBook 与 AirPods 连接不稳定处理方案
  12. 【office卸载】如何彻底卸载office2016
  13. 京东-黑客马拉松大赛复盘
  14. 《非线性成长》阅读笔记
  15. hive窗口函数(over)详解
  16. 《动手深度学习》4.5 权重衰减Weight Decay
  17. MATLAB - 旋度可视化
  18. ERROR: Cannot uninstall ‘wrapt‘. It is a distutils installed project and thus we cannot accurately..
  19. 树莓派3B+增加虚拟内存
  20. Docker学习笔记(2)--Docker常用命令

热门文章

  1. T3备份提示原先格式化该文件时所用扇区大小为512
  2. TabLayout+ViewPager2联动
  3. vs2022最新版本安装MVC4详细教程
  4. IOS中通过快捷捷径打开场所码或者健康码
  5. 2021全国人工智能师资培训入高校,百度携手哈工大探索AI师资更多可能
  6. SublimeLinter进行PHP代码检查
  7. Linux网卡配置文件详解:
  8. python能以文本和二进制方式处理文件_Python文件处理之文件写入方式与写缓存(三)...
  9. 偏最小二乘回归(三):身体特征与体能训练结果的 案例分析
  10. 通过使用ZooKeeper解决单点故障理论