美文网首页
碰撞与触发

碰撞与触发

作者: kuxingseng686 | 来源:发表于2015-09-25 18:01 被阅读0次


Continuous---对Discrete以及Continuous类的刚体使用Discrete检测(但除了Continuous Dynamic,因为Continuous Dynamic只对Discrete的刚体使用Discrete检测,那么就会对Continuous使用Continuous检测,反之亦然.) 除此之外还对静态物体使用Continuous检测

Continuous Dynamic---只对Discrete的刚体使用Discrete检测,对其他任何刚体或者静态物体都使用Continuous检测.

要点:Continuous和Continuous Dynamic都会对静态物体使用Continuous检测.

在使用的时候,一般对高速运动的刚体使用Continuous Dynamic,这时只需要记住,要将其他的刚体设置为非Discrete才会让高速运动的物体以及其他刚体之间产生Continuous检测,可以将其他刚体设置为Continuous或者Continuous Dynamic,但是不会进行高速运动的其他物体不必设置为Continuous Dynamic,因为Continuous Dynamic比Continuous更消耗性能.

Continuous和Continuous Dynamic的区别在于对Continuous使用何种检测,Continuous使用Discrete,而Continuous Dynamic使用Continuous!

Continuous Collision Detection is only supported for Rigidbodies with Sphere-, Capusle- or BoxColliders!!!


Static Collider 静态碰撞器

These are GameObjects that donothave a Rigidbody attached, butdohave a Collider attached. These objects should remain still, or move very little. These work great for your environment geometry. They will not move if a Rigidbody collides with them.

指的是没有附加刚体而附加了碰撞器的游戏对象。这类对象会保持静止或者很轻微的移动。对于环境模型十分好用,当和刚体碰撞时而不会移动。

Rigidbody Collider 刚体碰撞器

These GameObjects contain both a Rigidbody and a Collider. They are completely affected by the physics engine through scripted forces and collisions. They might collide with a GameObject that only contains a Collider. These will likely be your primary type of Collider in games that use physics.

指的是同时附加了刚体和碰撞器的游戏对象。通过脚本的力量和碰撞完全受物理引擎的影响。可以和只包含碰撞器的游戏对象碰撞。将会成为你游戏中使用物理效果的基本类型碰撞器。

Kinematic Rigidbody Collider 运动学刚体碰撞器

This GameObject contains a Collider and a Rigidbody which is marked IsKinematic. To move this GameObject, you modify itsTransformComponent, rather than applying forces. They're similar to Static Colliders but will work better when you want to move the Collider around frequently. There are some other specialized scenarios for using this GameObject.

指的是同时包含碰撞器和刚体,并且激活IsKinematic的一类游戏对象,要移动这类游戏对象,要修改它的Transform组件(指的是position和rotation这类属性),而不是用力。它们很像静态碰撞器,不过如果你想要不停地到处移动碰撞器,它们会更好用。这类游戏对象还有许多其他的独特使用情景。

运动学刚体碰撞器是个非常懒惰和霸道的家伙,它碰到其他碰撞器完全没有反应(其实还是有点反应,会触发一些碰撞函数的,后面有解释)。它不受力、重力或扭矩的影响。可以通过设置Transform 的position和rotation来准确的操作它们或者让它们动起来,但是,它们可以和其他的非运动学刚体互相作用。对于放在运动学刚体碰撞器上面的刚体,会受到运动学刚体施加的摩擦力。

移动的静态碰撞器VS静止的静态碰撞器

没有任何碰撞效果。这在意料之中,因为没有一个添加了Rigdbody属性,肯定不会碰撞啦!

移动的静态碰撞器VS静止的刚体碰撞器

没有任何碰撞效果。

这个结果有点意外,明明一个已经添加了Rigdbody,为什么还是无法发生碰撞呢?这是因为添加了Rigdbody的正方体是静止的,而静止的刚体会进入休眠。好吧,又遇到了新的名词,刚体休眠。例如,当一个正方体掉到地板上静止后就会进入刚体休眠。刚体休眠完全自动发生。只要刚体的速度低于sleepAngularVelocity和sleepVelocity,该刚体就会开始休眠。其空闲一些帧后,就会被设置成休眠状态。处于休眠状态中的物体,不会再对其进行碰撞检测和模拟。这会节约大量的CPU开销。这就解释了为什么我们这个实验里没有碰撞发生,因为它睡觉去了,而那个移动的静态碰撞器又无法唤醒它,所以它压根就不知道有人碰到了自己。这里又有一个问题了,那么什么情况下可以唤醒已经休眠了的刚体呢?有4中情况:

被施加了外力,也就是说在代码里使用了AddForce;

刚体的属性发生了变化;

和它通过关节连接的刚体发生了移动,因为连带关系,所以它也被唤醒了;

被其他刚体碰撞器碰撞。但是,只有处于运动状态中的刚体(包括普通的刚体碰撞器和运动学刚体碰撞器)能唤醒休眠中的刚体,静态碰撞器不能唤醒休眠中的刚体。即如果你将一个静态碰撞器(没有和任何刚体绑定过)绑定到处于休眠中的刚体,或者将静态碰撞器抽离处于休眠中的刚体时,这个休眠中的刚体是不会被唤醒的。但是如果你将一个运动中的刚体从它所属的且处于休眠状态中的顶层刚体移出时,处于休眠中的刚体将会被唤醒,且会在图形更新里被重新正确的计算。

移动的刚体碰撞器VS静止的静态碰撞器

有碰撞效果,具体为:对于移动的刚体碰撞器在遇到静态碰撞器后会产生物理效果,如反弹、无法前进等;对于静止的静态碰撞器,会产生轻微的碰撞效果,如轻微的晃动,但是不会移动。

移动的刚体碰撞器VS静止的刚体碰撞器

有碰撞效果,对于两个物体都出现正常的物理效果,如反弹等。

移动的静态碰撞器VS静止的运动学刚体碰撞器

没有任何碰撞效果。运动学刚体碰撞器是不受到任何外力作用的。

移动的运动学刚体碰撞器VS静止的静态碰撞器

没有任何碰撞效果。运动学刚体碰撞器是不受到任何外力作用的。

移动的运动学刚体碰撞器VS静止的刚体碰撞器

有碰撞效果,但仅刚体碰撞器有碰撞效果,如反弹等,运动学刚体碰撞器不受力的作用。

移动的刚体碰撞器VS静止的运动学刚体碰撞器

有碰撞效果,但仅刚体碰撞器有碰撞效果,如反弹等,运动学刚体碰撞器就像一堵墙一样一动不动。

移动的运动学刚体碰撞器VS静止的运动学刚体碰撞器

两个太上皇相见了会怎么样呢?没有任何反应……就像两个静态碰撞器一样。

相关文章

  • 碰撞与触发

    ContinuousDynamic---只对Discrete的刚体使用Discrete检测,对其他任何刚体或者静态...

  • Collider(碰撞器)详解

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

  • 03物理引擎

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

  • U3d物体碰撞触发器Collider

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

  • 03碰撞器与触发器

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

  • 碰撞器与触发器的区别

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

  • Unity碰撞检测

    不发生碰撞效果的碰撞(设置IsTrigger) 条件: 1.Both碰撞盒 2.其一刚体 3.其一碰撞盒为触发...

  • BulletDemo

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

  • 碰撞器检测和触发器检测

    无论是碰撞检测还是触发检测,他们都基于Collider组件。两个游戏对象发生碰撞时,碰撞器可以产生系统默认的碰撞产...

  • Unity之碰撞器与触发器

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

网友评论

      本文标题:碰撞与触发

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