美文网首页Unity动画相关
Unity3D-Collider(碰撞器)与Tirgger(触发

Unity3D-Collider(碰撞器)与Tirgger(触发

作者: 大锤丶 | 来源:发表于2016-12-12 19:16 被阅读12666次

什么是碰撞器?

描述了物体可被碰撞的边界,以及碰撞过程中相互影响效果。
碰撞效果:
两个游戏对象碰在一起,通过物理引擎产生类似现实的效果

碰撞器的种类:

1、盒碰撞器(Box Collider)
2、椭圆碰撞器(Sphere Collider)
3、胶囊碰撞器(Capsule Collider)
4、车轮碰撞器(Wheel Collider)专用于车辆
5、网格碰撞器(Mesh Collider)
6、地形碰撞器(Terrain Collider)

1、盒碰撞器(Box Collider)
盒子碰撞器是一个立方体外形的基本碰撞体,该碰撞体可以调整为不同大小的长方体,可以做门,墙等

Paste_Image.png

2、椭圆碰撞器(Sphere Collider)

椭圆碰撞器是一个基本球形的基本碰撞体,球形碰撞体的三维大小可以均匀的调节,适用于落石,球形障碍物

Paste_Image.png

3、胶囊碰撞器(Capsule Collider)
是由一个圆柱体和与其相连的两个半球体组成

Paste_Image.png

4、车轮碰撞器(Wheel Collider)
是一种针对地面车辆的特殊碰撞体,有内置的碰撞检测、车轮物理系统及有滑胎摩擦的参考体。

Paste_Image.png

5、网格碰撞器(Mesh Collider)
通过获取网格对象并在其基础上构建碰撞碰撞。更加精细,但是会使用更多系统资源。开启Convex参数的网格碰撞体才可以与其他网格碰撞体发生碰撞

Paste_Image.png

通常两个网格碰撞体之间不会发生碰撞,但是它们都可以与基本碰撞体发生碰撞如果要让它发生碰撞:开启Convex属性

Paste_Image.png

1.碰撞的方法

****球跟胶囊的代码****

球的代码 胶囊的代码

****情形一****
当两个游戏对象拥有刚体和碰撞器,不管脚本挂哪个游戏对象都可以进入Oncollision,两者都挂在碰撞器脚本都会调用各自身脚本上的OnCollision方法。

Paste_Image.png Paste_Image.png

****情形二****
碰撞体球带有刚体,有碰撞器,有脚本,一开始就会进入自身的碰撞器方法打印与地面的接触。
被碰撞物胶囊有碰撞器,有脚本,但是没有刚体,一开始不会进入自身的碰撞器方法。
当两个物体发生碰撞,两者脚本中的碰撞器方法都会被触发打印

Paste_Image.png

打印结果为:
首先一开始发现只有有刚体的球打印了自己的碰撞器方法


Paste_Image.png

当球碰到胶囊的时候两者都触发打印


Paste_Image.png
****情形三****
碰撞体球带有刚体,有碰撞器,有脚本,一开始就会进入自身的碰撞器方法打印与地面的接触。
被碰撞物有脚本,没有刚体(有刚体也是一样)跟碰撞器,不会打印任何方法

一开始打印:


Paste_Image.png
Paste_Image.png Paste_Image.png

二者相碰,拥有刚体与碰撞器并且身上有碰撞器方法的小球遇到没有碰撞器的胶囊(不管有没有刚体都一样1)会直接穿过去。


Paste_Image.png

****情形四****
球与胶囊都只有碰撞器跟脚本,没有刚体

Paste_Image.png Paste_Image.png

打印结果:
当两者没有刚体而只有碰撞的时候,两者是不会发生碰撞的,互相穿过。
因此二者都没有打印结果,是空的


Paste_Image.png

最终结论:

1、只要有刚体有碰撞器,并且与其他碰撞器碰撞就会进入自身的碰撞器方法2、没有刚体,有碰撞器的物体被一个拥有刚体的碰撞器碰撞,都会调用自身的碰撞器方法。3、没有刚体的两个碰撞器相撞不会调用任何碰撞器方法
最终结论:
碰撞器(Collider)不需要刚体(Rigidbody)
刚体(Rigidbody)要发生碰撞,一定需要碰撞器(Collider)
碰撞器决定了碰撞发生时的边界条件
刚体决定了碰撞发生后的物体的运动效果
没有碰撞器的刚体,会在物理模拟中相互穿透。

2、触发器的方法

Paste_Image.png Paste_Image.png

****情形一****
1、当两方带有触发器跟脚本,没有刚体的时候,二者不会打印触发器方法


Paste_Image.png
Paste_Image.png

2、其中一方是触发器,另一方是碰撞器,二者也不会打印触发器方法,都不会打印东西。

Paste_Image.png

一样不会打印东西


Paste_Image.png

****情形二****
给球添加一个刚体,且是个触发器的时候,球会直接与地面产生交互,穿透地面,并打印触发方法。

Paste_Image.png

打印触发方法:

Paste_Image.png

****情形三****
给球的刚体勾上Is kinematic


Paste_Image.png

此时当球与方块碰撞的时候,当球与方块会打印各自的触发器方法。

Paste_Image.png

****情形四****
当球与方块都有刚体和触发器和脚本的时候,二者都会调用触发方法


Paste_Image.png Paste_Image.png

打印结果:


Paste_Image.png

****情形五****
只要一方是触发器,另一方是有碰撞体就会触发各自的触发器方法



打印结果:


Paste_Image.png

结论:

1、想要打印触发器方法,必须有一方是触发器,必须有一方带有刚体。二者缺一不可。
2、双方都是触发器,或者其中一方是触发器,另一方是碰撞器,都不会打印。
3、只要一方是触发器,并且有刚体组件,不管另一方是碰撞体还是触发器都会打印各自的触发器方法。
4、一般我们将触发器方法写在角色碰到的物体上,角色一般不参与触发方法。只写碰撞方法。

相关文章

  • Unity3D-Collider(碰撞器)与Tirgger(触发

    什么是碰撞器? 描述了物体可被碰撞的边界,以及碰撞过程中相互影响效果。碰撞效果:两个游戏对象碰在一起,通过物理引擎...

  • mysql创建触发器

    trigger_name:触发器的名称tirgger_time:触发时机,为BEFORE或者AFTERtrigge...

  • Unity3D-Collider(碰撞器)和触发器(Trigge

    一、碰撞器(Collider) 如: Box Collider 盒碰撞器、Capsule Coll...

  • Collider(碰撞器)详解

    1.Collider(碰撞器) 碰撞器即判定该物体是否与另外一个物体碰撞器接触上的而触发的机制,以碰撞器是否有接触...

  • Unity3D-Collider(碰撞器)

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • 碰撞器与触发器的区别

    Unity3d中的碰撞器和触发器的区别? 答:1.碰撞器物体不能互相进入到对方内部,触发器可以 2.触发器角色控制...

  • 03碰撞器与触发器

    在U3D中没有碰撞器,那么物体之间就会悬浮,不会有日常的一些逻辑效果。 碰撞器(Collider)类型## 1、静...

  • BulletDemo

    用到知识点:刚体、碰撞器、触发器、射线

  • U3d物体碰撞触发器Collider

    1.当物体只有碰撞器的时候 2.当物体上有触发器trigger时,只检测触发,不进行碰撞。(被碰撞一方上需要是tr...

  • 03物理引擎

    人机交互 碰撞器 刚体组件 碰撞检测 触发事件 物理材质 射线

网友评论

    本文标题:Unity3D-Collider(碰撞器)与Tirgger(触发

    本文链接:https://www.haomeiwen.com/subject/ajjsmttx.html