当前位置:首页 >> 技术栈专业化分层 >> 【Unity入门】碰撞检测,e人e本t4(unity碰撞检测原理)

【Unity入门】碰撞检测,e人e本t4(unity碰撞检测原理)

cpugpu芯片开发光刻机 技术栈专业化分层 4
文件名:【Unity入门】碰撞检测,e人e本t4 【Unity入门】碰撞检测 碰撞器由来 1.系统默认会给每个对象(GameObject)添加一个碰撞组件(ColliderComponent),一些背景对象则可以取消该组件。 2.在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这两种方式,我们必须理解以下概念:

(一)碰撞器:是一群组件,它包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须加到GameObjecet身上。主要有以下接口函数:

碰撞信息检测:

MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 碰撞发生MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 碰撞结束MonoBehaviour.OnCollisionStay( Collision collisionInfo ) 碰撞期间 private void OnCollisionEnter(Collision collision){Debug.Log("碰撞发生");Debug.Log("碰撞到的物体:" + collision.gameObject.name);}private void OnCollisionExit(Collision collision){Debug.Log("碰撞结束");}private void OnCollisionStay(Collision collision){Debug.Log("碰撞中");}

(二)触发器:只需要在检视面板中的 碰撞器 组件中勾选 IsTrigger 属性选择框(勾选之后,物体之间就不会碰撞)。主要有以下接口函数: 触发信息检测: 5. MonoBehaviour.OnTriggerEnter( Collider other ) 触发发生 6. MonoBehaviour.OnTriggerExit( Collider other ) 触发结束 7. MonoBehaviour.OnTriggerStay( Collider other ) 接触期间

private void OnTriggerEnter(Collider other){Debug.Log("触发发生");Debug.Log("触碰到的物体:"+other.gameObject.name);}private void OnTriggerExit(Collider other){Debug.Log("触发结束");}private void OnTriggerStay(Collider other){Debug.Log("接触中");}

总结,有碰撞无触发,相反有触发无碰撞

组件参数说明 1、Rigidbody 组件

Mass

对象的质量(默认为千克)

Drag

根据力移动对象时影响对象的空气阻力大小。0 表示没有空气阻力,无穷大使对象立即停止移动

Angular Drag

根据扭矩旋转对象时影响对象的空气阻力大小。0 表示没有空气阻力。请注意,如果直接将对象的 Angular Drag 属性设置为无穷大,无法使对象停止旋转。

Use Gravity

如果启用此属性,则对象将受重力影响。

Is Kinematic

如果启用此选项,则对象将不会被物理引擎驱动,只能通过 (Transform) 对其进行操作。对于移动平台,或者如果要动画化附加了 HingeJoint 的刚体,此属性将非常有用。

Interpolate 仅当在刚体运动中看到急动时才尝试使用提供的选项之一。有以下三个参数 None 不应用插值。 Interpolate 根据前一帧的变换来平滑变换。 Extrapolate 根据下一帧的估计变换来平滑变换。

Collision Detection 用于防止快速移动的对象穿过其他对象而不检测碰撞。有以下四个参数 Discrete 对场景中的所有其他碰撞体使用离散碰撞检测。其他碰撞体在测试碰撞时会使用离散碰撞检测。用正常碰撞(这是默认值)。 Continuous 对动态碰撞体(具有刚体)使用离散碰撞检测,并对静态碰撞体(没有刚体)使用基于扫掠的连续碰撞检测。设置为_连续动态 (Continuous Dynamic) 的刚体将在测试与该刚体的碰撞时使用连续碰撞检测。其他刚体将使用离散碰撞检测。用于连续动态 (Continuous Dynamic) 检测需要碰撞的对象。(此属性对物理性能有很大影响,如果没有快速对象的碰撞问题,请将其保留为 Discrete 设置) Continuous Dynamic 对设置为连续 (Continuous)和连续动态 (Continuous Dynamic)碰撞的游戏对象使用基于扫掠的连续碰撞检测。还将对静态碰撞体(没有刚体)使用连续碰撞检测。对于所有其他碰撞体,使用离散碰撞检测。用于快速移动的对象。 Continuous Speculative 对刚体和碰撞体使用推测性连续碰撞检测。这也是可以设置运动物体的唯一 CCD 模式。该方法通常比基于扫掠的连续碰撞检测的成本更低。

Constraints 对刚体运动的限制。 Freeze Position 有选择地停止刚体沿世界 X、Y 和 Z 轴的移动。 Freeze Rotation 有选择地停止刚体围绕局部 X、Y 和 Z 轴旋转。

更多信息看点击查看

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2026年1月    »
1234
567891011
12131415161718
19202122232425
262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接