Unity3D入门(十一):刚体碰撞事件和触发事件监测

您所在的位置:网站首页 点击触发事件游戏 Unity3D入门(十一):刚体碰撞事件和触发事件监测

Unity3D入门(十一):刚体碰撞事件和触发事件监测

2024-07-17 08:29| 来源: 网络整理| 查看: 265

Unity3D入门(十一):刚体碰撞事件和触发事件监测 碰撞事件碰撞事件简介 触发事件触发事件简介触发事件监测方法

碰撞事件 碰撞事件简介

1.何为碰撞事件? 当一个用刚体控制的物体与另外一个物体碰撞时,就会触发碰撞事件。 注:目标物体必须带有 Collider 组件。 比如,一款射击类游戏,我们发射出了子弹,子弹是一个由刚体控制运动的物体,子弹射中了敌人,我们如何监测到这个碰撞??

2.碰撞事件监测方法

方法作用OnCollisionEnter(Collision)当碰撞开始时调用,只会调用该方法一次OnCollisionExit(Collision)当碰撞结束时调用,只会调用该方法一次OnCollisionStay(Collision)当碰撞进行中时,会持续调用该方法。

Collision 参数:碰撞,一个类。 作用:用于传递碰撞信息。 Collision.gameObject 属性,与当前物体碰撞的物体的引用。 gameObject.name 属性,当前物体的名字。

为Student 和 Wall 各自新建 Collision脚本,删去类中原有 Start 和Update 函数增加如下信息:

//Student碰撞信息 void OnCollisionEnter( Collision coll) { if(coll.gameObject.name != "floor") Debug.Log("Enter " + coll.gameObject.name); } void OnCollisionExit(Collision coll) { if (coll.gameObject.name != "floor") Debug.Log("Exit " + coll.gameObject.name); } void OnCollisionStay(Collision coll) { if (coll.gameObject.name != "floor") Debug.Log("Stay " + coll.gameObject.name); }

墙碰撞信息代码与之相同。

结果打印: 在这里插入图片描述

触发事件 触发事件简介

1.触发器 将碰撞体组件属性面板上的“Is Trigger”选项选中,当前的游戏物体的碰撞体 就变成了触发器。 注意:移动的刚体物体会穿透碰撞体勾选了**“Is Trigger”**的物体。 为便于观察,可以调整Collider的大小,如下图:

在这里插入图片描述

2.触发事件 当一个用刚体控制的物体进入到另外一个物体的触发器范围内,就是触发事件。 触发用途:不与目标物体发生直接的碰撞(接触),而是只要进入目标物体的“触发范围”就能执行某些特定操作。

触发事件监测方法 方法作用OnTriggerEnter(Collider)当进入触发范围时开始时调用,只会调用该方法一次。OnTriggerExit(Collider)当离开触发范围时开始调用,只会调用该方法一次。OnTriggerStay(Collider)在触发范围内,会持续调用该方法。

Collider 参数:碰撞体,一个类。 作用:用于传递触发信息。 Collider.gameObject 属性,进入触发范围内的目标物体的引用。 gameObject.name 属性,当前物体的名字。

//子弹触发器代码 void OnTriggerEnter(Collider coll) { Debug.Log("Cube enter " + coll.gameObject.name); } void OnTriggerExit(Collider coll) { Debug.Log("Cube exit " + coll.gameObject.name); } void OnTriggerStay(Collider coll) { Debug.Log("Cube stay " + coll.gameObject.name); }

墙触发信息代码与之相同。 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3