Unity3D碰撞检测和OnTriggerEnter用法

Unity3D碰撞检测和OnTriggerEnter⽤法
在⽬前掌握的情况分析,在Unity中参与碰撞的物体分2⼤块:1.发起碰撞的物体。2.接收碰撞的物体。
1. 发起碰撞物体有:Rigodbody , CharacterController .
2. 接收碰撞物体由:所有的Collider .
⼯作的原理为:发⽣碰撞的物体中必须要有“发起碰撞”的物体。否则,碰撞不响应。
⽐如:墙⽤BoxCollider ,所以墙与墙之间⽆反应。
⽐如:⼀个带有Rigidbody属性的箱⼦,能落到带有MeshCollider属性的地⾯上。
⽐如:⼀个带有Rigidbody属性的箱⼦,可以被⼀个带有CharacterController 属性的⼈推着跑。
就是此原因。
在所有Collider上有⼀个Is Trigger 的boolean型参数。
当发⽣碰撞反应的时候,会先检查此属性。
当激活此选项时,会调⽤碰撞双⽅的脚本 OnTrigger***,反之,脚本⽅⾯没有任何反应。
当激活此选项时,不会发⽣后续物理的反应。反之,发⽣后续的物理反应。
总结:Is Trigger 好⽐是⼀个物理功能的开关,是要“物理功能”还是要“OnTrigger脚本”。
在Rigodbody 上有⼀个Use Gravity 的boolean型参数.
Unity 物理引擎,处理的⼀个细节:
当⼀个CharacterController不发⽣位置变化,⼀个Collier发⽣位置变化后,产⽣碰撞。将不会调⽤任何碰撞反映。
物理引擎视为CharacterController⽆碰撞.
碰撞器由来
1.系统默认会给每个对象(GameObject)添加⼀个碰撞组件(ColliderComponent),⼀些背景对象则可以取消该组件。
刀模
2.在unity3d中,能检测碰撞发⽣的⽅式有两种,⼀种是利⽤碰撞器,另⼀种则是利⽤触发器。这两种全自动智能吸尘器
⽅式的应⽤⾮常⼴泛。为了完整的了解这两种⽅式,我们必须理解以下概念:
(⼀)碰撞器是⼀组件,它包含了很多种类,⽐如:Box Collider,Capsule Collider等,这些碰撞器应⽤的场合不同,但都必须加到GameObjecet⾝上。
(⼆)所谓触发器,只需要在检视⾯板中的碰撞器组件中勾选IsTrigger属性选择框。
(三)在Unity3d中,主要有以下接⼝函数来处理这两种碰撞检测:
触发信息检测:
1.MonoBehaviour.OnTriggerEnter( Collider other )当进⼊触发器
便携式餐具2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器
plc数据采集3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器
碰撞信息检测:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进⼊碰撞器
2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器
3.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器
OnTriggerEnter
原创 2016年12⽉06⽇ 16:49:202422
准备⼀个脚本:shiyan.cs ,脚本内容如下:
脚本挂在⼩球上,然后运⾏场景,拖动⼩球撞盒⼦,然后再拖动盒⼦撞⼩球,分别看控制台打印结果
然后将脚本挂在盒⼦上,然后运⾏场景,拖动⼩球撞盒⼦,然后再拖动盒⼦撞⼩球,分别看控制台打印结果OnTriggerEnter触发条件:
碰撞双⽅都必须是碰撞体
碰撞双⽅其中⼀个碰撞体必须勾选IsTigger选项
euht终端碰撞双⽅其中⼀个必须是刚体
txue
刚体的IsKinematic选项可以勾选也可以不勾选
只要满⾜上⾯两个条件,不管谁主动都会触发
备注:
OnTriggerEnter⽅法的形参对象指的是碰撞双⽅中没有携带OnTriggerEnter⽅法的⼀⽅ OnTriggerEnter⽅法前可以带上public或private,或者⼲脆两个都不带

本文发布于:2024-09-23 22:32:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/204762.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:碰撞   物体   物理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议