Unity3D入门(十一):刚体碰撞事件和触发事件监测 |
您所在的位置:网站首页 › 点击触发事件游戏 › Unity3D入门(十一):刚体碰撞事件和触发事件监测 |
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 |