Unity3d复习之碰撞体

  • Unity3d复习之碰撞体已关闭评论
  • 3,765 views
  • A+
所属分类:Unity3d 原创文章

上次有四个函数没有执行,它们分别是OnTriggerEnter(),OnCollisionEnter(),OnMouseDown(),OnDisable()。

今天,我先创建一个新的场景,添加一个Cube,一个Sphere,一个平行光

Unity3d复习之碰撞体

然后在Cube和Sphere的属性栏Inspector中可以看到Collider组件,如图

Unity3d复习之碰撞体

Unity3d复习之碰撞体

随后我为这两个物体分别加上脚本CubeCollider,QiuCollider

代码如下↓

球体的:

Unity3d复习之碰撞体

正方体的:

Unity3d复习之碰撞体

然后,运行一把!

分别点击一下球体和正方体,发现

Unity3d复习之碰撞体

MouseDown事件可以触发了

然后,在场景视图中,移动它们撞在一起

发现没有反应,好吧,碰撞体中其中一个要加刚体组件

加上刚体组件,再运行一把

移动,撞在一起,结果

Unity3d复习之碰撞体

取消运行,发现

Unity3d复习之碰撞体

OnDisable()也触发了,就差OnTriggerEnter()了

我把球体和正方体其中一个的IsTrigger选项勾选了

再次运行,撞在一次,结果

Unity3d复习之碰撞体

两个执行的都是OnTriggerEnter(),没有执行OnCollisionEnter()

经实验证明,只要碰撞双方中其中一方或双方勾选了isTrigger选项,双方都只会触发OnTriggerEnter()事件,而不会触发OnCollisionEnter事件。