unity3d中的碰撞系统

原创 2015年07月07日 21:56:09

Trigger触发器:
属于事件系统,不属于物理系统
触发过场动画,自动门开启,显示教程。

Collider碰撞器
属于物理和事件系统,先物理碰撞检测,再事件触发系统

物理材质,决定碰撞方式(摩擦,弹力,柔软度),不同于渲染材质。

碰撞检测:

  • 不连续:

            他和其他碰撞器,离散碰撞检测
            其他碰撞器和他,离散碰撞检测
            *默认设置*
    
  • 连续碰撞检测:

            他和其他碰撞器
                    动态碰撞器(有刚体)使用离散碰撞检测
                    静态Mesh碰撞器(无rigidbody,防止角色和地形或者障碍物穿
                    插??)使用连续碰撞检测
            其他碰撞器和他
                    连续动态碰撞器使用连续碰撞检测
                    其他碰撞器使用离散碰撞检测
            *用于被连续动态碰撞器碰撞的物体、*
    
  • 连续动态碰撞器:

            他和其他碰撞器
                    连续碰撞器,连续动态碰撞器明,静态Mesh碰撞器
                    (rigidbody,防止角色障碍物或者地形穿插?)使用连续碰
                    撞检测
            其他碰撞器和他
                    离散碰撞检测
            *用于快速移动的物体*
    

1 连续碰撞或者连续动态碰撞均有针对地形或者障碍物进行连续碰撞检测的特殊处理,所以连续体现在此(保证不穿墙,但是可以穿角色)
2 连续碰撞和连续动态碰撞作用时,双方采用连续碰撞检测。子弹打木块,子弹木块都用连续碰撞检测。
3 连续动态碰撞之间也用连续碰撞检测,比如两个子弹ko。

基于层的碰撞检测

Sphere collider
是否是trigger,决定是不是触发事件,属于事件系统,而不是用物理系统做碰撞检测。

Box collider

Capsule collider

Mesh collider
依据mesh网格。
设置为convex才可以和其他的mesh collider碰撞。Contex网格三角面不要超过255个(char型)

枪支需要用简单的碰撞体组合在一起。

碰撞器类型:
Static collider 静态碰撞器:
只有collider,没有rigidbody,用作静态的物体(环境),被碰撞后不会动。
应用:环境。

Rigidbody collider 刚体碰撞器
物理系统:受力+碰撞检测
应用:大多数场景。

Kinematic Rigidbody collider 运动学刚体碰撞器
不受力,程序改变位移旋转
应用: 创建ragdoll,用铰链去驱动rigidbody。

Collision和trigger的组合类型:
1 Static静态 和动态(rigidbody 和 kinematic rigidbody)
2 collider和trigger

Collision的产生:
Collider和collider
注意! 两个运动学刚体碰撞器相碰撞,不会有collision的消息产生!
可以理解为:都只包括运动,没有实体,所以没有碰撞。猜测

Trigger的产生:
Collider和trigger, trigger和trigger
除了static和static,其他都可以产生trigger事件。

关节
都有共同属性: connect body, break force/torque

铰链 Hinge Joint
拥有该组件的物体必须是kinematic rigidbody
(可以一个kinematic,两个kinematic或者一个non-kinematic一个kinematic),
设置旋转轴位置和旋转方向,基于本地坐标,轴向旋转。
Break force和torque可以制作门被炸开的效果。
应用:门,钟摆,链子

弹簧关节 spring joint
拥有该组件的物体必须是kinematic rigidbody
(可以一个kinematic,两个kinematic或者一个non-kinematic一个kinematic)
就像中间有弹簧一样。
应用:橡皮筋或者弹弓。
创建子弹被弹射的效果,可以增加一个空的gameobject作为拥有该spring joint组件的rigidbody的Coneect body。当远离该空的gameobject的时候,就可以产生弹力。

Fixed joint 固定关节
使用物理达到和父子级的层级变换效果
应用:
1 希望多个物体轻易的被分开
2 想让两个没有父子级关系的对象同时运动
比如 粘性炸弹等附属类的东西。

Character joint角色关节
应用: ragdoll

布料
Interactive cloth交互式布料

Skinned cloth 蒙皮布料
应用:角色身上的衣服
和SkinnedMeshRenderer 同时使用,使用skinnedmeshrenderer的顶点做布料运算。
不需要物理计算,只需要SkinnedMeshRenderer顶点和顶点系数

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

U3d刚体,碰撞,触发器

U3d刚体,碰撞,触发器首先是刚体的解释: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加...

Unity3D入门(二):碰撞检测

碰撞器由来 1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消资格组件。 2.在unity3d中,能检测碰撞发生的方式有两种...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Unity3d中CharacterController的移动和碰撞分析

在Unity3d中系统提供的第一人称视角模型First Person Controller的移动可分为两种: 一.移动transform   这种移动方式为直接对该人物模型的tra...

Unity 初级AI躲避障碍物

阅读《Unity Game AI programming 》第6章后,感觉躲避障碍物算法不是很给力。为了研究和学习Unity,自己改良躲避障碍物的算法。当然,代码没有优化,不过没关系,抛砖引玉,记录思...

unity3d中的碰撞系统

Trigger触发器:  属于事件系统,不属于物理系统  触发过场动画,自动门开启,显示教程。 Collider碰撞器  属于物理和事件系统,先物理碰撞检测,再事件触发系统 物理材质...

Unity3D粒子系统碰撞器,让粒子碰撞到物体之后消失

经过测试学习,总结了关于怎么让粒子和物体发生碰撞和怎么让粒子在碰撞后消失的几点看法: 首先给大家看一下我的粒子系统的配置图: 关于碰撞检测的主要配置我们看图中的Collision: 第一项:因为是...

自学Unity3D游戏开发(3)刚体和碰撞

上一章讲到为物体粘贴图片,如果有同学运行下会发现物体会悬在空中不动,那是因为还没有添加物理规律,没有重力当然不会下落。 这里有一个名词叫做“刚体”,既Rigidbody,我们要把这个东西添加在物体上面...

Unity3D笔记第十一天——碰撞器

碰撞器 碰撞体类型 Box Collider:方形或者类方形物体,如墙壁、地面、桌子等 Sphere  Collider:圆形或者类圆形物体,如球、近圆形角色等 Capsule  Co...

unity3d碰撞检测

具体的一些,可以看 unity3d的 manual refrernce的东西,有几个表格在后面可以参考: 几个类型碰撞器: 1. 静态碰撞器: 就是只有碰撞器,但没有刚体的 2.刚体碰撞器: 带...
  • mfc11
  • mfc11
  • 2012-10-12 14:21
  • 3497
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)