美文网首页
Unity之碰撞器与触发器

Unity之碰撞器与触发器

作者: 困卡 | 来源:发表于2017-04-06 23:48 被阅读0次

要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。

物体发生碰撞的必要条件

两个物体都必须带有碰撞器
(Collider),其中一个物体还必须带有Rigidbody刚体。

在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。

碰撞器:一群组件,它包含了很多种类,比如:
Box Collider(盒碰撞体),Mesh Collider(网格碰撞体)等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。

触发器,只需要在检视面板中的碰撞器组件中勾选
IsTrigger属性选择框。

图片1.png

触发信息检测:

1.MonoBehaviour.OnTriggerEnter(Collider collider)当进入触发器

2.MonoBehaviour.OnTriggerExit(Collider collider)当退出触发器

3.MonoBehaviour.OnTriggerStay(Collider collider)当逗留触发器

碰撞信息检测:

1.MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器

2.MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器

3.MonoBehaviour.OnCollisionStay(Collision collision) 当逗留碰撞器

unity3d中的碰撞器和触发器的区别?

碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性


Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;


Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。

如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器

例子:

碰撞器:汽车被撞飞、皮球掉在地上又弹起效果

触发器:人站在靠近门的位置门自动打开效果

相关文章

  • 碰撞器与触发器的区别

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

  • Unity之碰撞器与触发器

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

  • unity碰撞检测(碰撞器,触发器)

    Unity中的碰撞检测主要由两个组件完成 刚体Rigidbody 碰撞体Collider碰撞的必要条件 发生碰撞的...

  • BulletDemo

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

  • 03碰撞器与触发器

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

  • 05_Jungle Wars Client

    地形设计 刚体+碰撞器+触发器 LightMapping 导航系统,导航网络 Animator,Animation...

  • unity—触发器

    打开unity新建3d场景 先创建一个地面(鼠标右键单击左侧面板-选择3D object-plane) 从资源商店...

  • MySQL之触发器

    本文主要介绍MySQL中触发器的相关知识与应用,为什么使用触发器,以及如何使用触发器。 I、触发器简介 如果我们想...

  • U3d物体碰撞触发器Collider

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

  • 触发器 ,物理材质 射线(Ray)

    触发器: 俩个物体上都有碰撞器至少带有一个刚体,并且俩个物体至少有一个物体打开 碰撞器事件: 1.OnTrigge...

网友评论

      本文标题:Unity之碰撞器与触发器

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