unity3d中的碰撞系统
2015-07-07 21:56
309 查看
Trigger触发器:
属于事件系统,不属于物理系统
触发过场动画,自动门开启,显示教程。
Collider碰撞器
属于物理和事件系统,先物理碰撞检测,再事件触发系统
物理材质,决定碰撞方式(摩擦,弹力,柔软度),不同于渲染材质。
碰撞检测:
不连续:
连续碰撞检测:
连续动态碰撞器:
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顶点和顶点系数
属于事件系统,不属于物理系统
触发过场动画,自动门开启,显示教程。
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顶点和顶点系数
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- 在登录触发器错误情况下连接SQL Server的方法
- 你真的了解触发器么 数据实时同步更新问题剖析
- SQL Server 2000中的触发器使用
- sql update 触发器 可获得被update的行的信息
- sqlserver 触发器教程
- 特殊的存储过程-触发器概述
- SQL查询出表、存储过程、触发器的创建时间和最后修改时间示例
- oracle 触发器 学习笔记
- 简单触发器的使用 献给SQL初学者
- SQLSERVER记录登录用户的登录时间(自写脚本)
- SQL SERVER 触发器介绍
- sqlserver 触发器实例代码
- mysql触发器(Trigger)简明总结和使用实例
- MySQL触发器使用详解
- SQL Server触发器及触发器中的事务学习
- MySQL 在触发器里中断记录的插入或更新?
- Mysql中的触发器简单介绍及使用案例
- oracle 存储过程和触发器复制数据