当前位置: 首页 > news >正文

Unity基础学习(十三)核心系统—物理系统之碰撞检测组件篇(2)刚体,碰撞体,材质

       

目录

一、碰撞器

1. Box Collider(盒型碰撞器)

2. Sphere Collider(球形碰撞器)

3. Capsule Collider(胶囊碰撞器)

4. Mesh Collider(网格碰撞器)

5. Wheel Collider(车轮碰撞器)

6. Terrain Collider(地形碰撞器)

二、材质相关

1. Dynamic Friction(动态摩擦)换个名字你一定熟悉,滑动摩擦力

2. Static Friction(静态摩擦)

3. Bounciness(弹性)

4. Friction Combine(摩擦组合模式)

5. Bounce Combine(反弹组合模式)

三、总结

一、3D 碰撞器类型汇总表

二、物理材质参数汇总表


         前文回顾,我们必须记住碰撞产生的必要条件,两个物体都有碰撞器,至少一个物体有刚体

好的,我们来进入今天的主题,Unity中的碰撞器。

一、碰撞器

        如图所示,可以看到有很多collider,带2D的就是2D碰撞器,接下来我们会着重几个常用的碰撞器讲解。

3D碰撞器种类

1. Box Collider(盒型碰撞器)

Edit Collier 可以自己手动调整碰撞体的曲线范围,可以更加准确的贴合模型
用途:适用于方形/矩形物体(如箱子、墙壁)。一般你直接创建的3D物体会自带一个这样的碰撞器
参数:
Size:定义碰撞盒的 XYZ 轴向尺寸。
Center:调整碰撞盒相对于物体中心的偏移。
优点:计算效率高,性能消耗最低。
缺点:无法贴合复杂形状。


2. Sphere Collider(球形碰撞器)


用途:适用于球体或近似球形的物体(如炮弹、头部碰撞检测)。
参数:
Radius:控制球体半径。
Center:调整球心位置。
优点:计算速度快,适合动态物体的快速碰撞检测。
缺点:仅适用于对称圆形物体。


3. Capsule Collider(胶囊碰撞器)


用途:常用于角色控制器(如人体、圆柱形物体)。
参数
Height:胶囊总高度。
Radius:半球端和圆柱体的半径。
Direction:胶囊朝向(X/Y/Z 轴)。
优点:结合球体和圆柱体的优势,适合角色移动时的稳定碰撞检测。
缺点:无法适配非对称形状。


4. Mesh Collider(网格碰撞器)


用途:精确贴合复杂模型(如高精度地形、不规则物体)。
参数:
Mesh:指定用于生成碰撞的网格。你可以直接使用别人的这个网格信息,直接拖过来就是
Convex:勾选此复选框可启用 Convex。如果启用此属性,该 Mesh Collider 将与其他 Mesh Collider 发生碰撞。Convex Mesh Collider 最多 255 个三角形。你可以理解为为一个对象身上,他不是一个完整的个体,而是由不同的这种小网格组成的碰撞体,局部满足碰撞。

Cooking Options:就是处理碰撞模型的不同处理方式


启用或禁用影响物理引擎对网格处理方式的网格烹制选项。

        -None
禁用下方列出的所有 Cooking Options
        -Everything
启用下方列出的所有 Cooking Options。
        -Cook for Faster Simulation
        使物理引擎烹制网格以加快模拟速度。启用此设置后,这会运行一些额外步骤,以保证生成的网格对于运行时性能是最佳的。这会影响物理查询和接触生成的性能。禁用此设置后,物理引擎会使用更快的烹制速度,并尽可能快速生成结果。因此,烹制的 Mesh Collider 可能不是最佳的。
        -Enable Mesh Cleaning
        使物理引擎清理网格。启用此设置后,烹制过程会尝试消除网格的退化三角形以及其他几何瑕疵。此过程生成的网格更适合于在碰撞检测中使用,往往可生成更准确的击中点。
        -Weld Colocated Vertices
        使物理引擎在网格中删除相等的顶点。启用此设置后,物理引擎将合并具有相同位置的顶点。这对于运行时发生的碰撞反馈十分重要。
优点:完全贴合模型表面,精度最高。
缺点:性能消耗大,非凸面体(Concave)仅适用于静态物体。


5. Wheel Collider(车轮碰撞器)


用途:专为车辆模拟设计(如汽车轮胎)。
参数:
        Mass
车轮的质量
        Radius
车轮的半径
         Wheel Damping Rate(车轮阻尼率)
作用:控制车轮旋转的阻力(类似“惯性”),影响车辆加速/刹车的响应速度。
值越大,车轮旋转阻力越大,车辆加速变慢,刹车更快停止。
典型应用:高阻尼率模拟越野车轮胎,低阻尼率适合赛车。
        Suspension Distance 控制车轮悬挂系统的弹性和阻尼,模拟车辆减震效果。
车轮悬架的最大延伸距离(在局部空间中测量)。悬架始终向下延伸穿过局部 Y 轴。

Spring(弹簧刚度):值越大,悬挂越“硬”(如 35000),车辆颠簸时反弹更快;值小则悬挂更“软”,适合越野车。
Damper(阻尼系数):值越大(如 4500),悬挂运动阻力越大,能快速抑制弹簧震动,避免车身反复摇晃。
Target Position(目标位置):悬架的初始平衡位置(范围 0~1),0.5 表示悬挂默认处于中间位置。


        Force App Point Distance 控制车辆加速/刹车时轮胎与地面的摩擦力(沿车轮前进方向)。
        此参数定义车轮上的受力点。此距离应该是距车轮底部静止位置的距离(沿悬架行程方向),以米为单位。当 forceAppPointDistance = 0 时,受力点位于静止的车轮底部。较好的车辆会使受力点略低于车辆质心。

Extremum Slip(极值滑移率):达到最大摩擦力的滑移率阈值(如 0.4)。例如,车辆急加速时,轮胎滑移率达到 0.4 时摩擦力最大。
Extremum Value(极值摩擦力):滑移率为 Extremum Slip 时的最大摩擦力系数(如 1)。
Asymptote Slip(渐近滑移率):摩擦力开始下降的滑移率(如 0.8),超过此值后摩擦力逐渐减小。
Asymptote Value(渐近摩擦力):滑移率极高时的基础摩擦力(如 0.5)。
Stiffness(刚度系数):调整摩擦曲线整体强度,值越大摩擦力越强(通常配合物理材质全局调整)。


6. Terrain Collider(地形碰撞器)


用途:专门适配 Unity 的 Terrain 系统(如开放世界地形)。这个我们后面再学习
参数
Terrain Data:关联地形数据。
Enable Tree Colliders:是否启用树木碰撞。
优点:自动匹配地形高度图,节省手动配置时间。

二、材质相关

如图,可手动创建材料,Create->Physic Material,注意我们创建的物理材质,另一个材质指的是模型的渲染材质

可以看到很多参数,不急,慢慢介绍 

1. Dynamic Friction(动态摩擦)换个名字你一定熟悉,滑动摩擦力


作用:控制物体 运动时 与接触表面之间的摩擦力。
值范围:0(无摩擦)到 1(最大摩擦)。
示例:
冰面:动态摩擦设为 0.1,物体滑动距离长。
橡胶:动态摩擦设为 0.8,物体快速停止。

2. Static Friction(静态摩擦)


作用:控制物体 静止时 与接触表面之间的摩擦力,决定物体开始运动所需的力。
值范围:0(极易滑动)到 1(极难滑动)。
示例:
斜面放置的木箱:若静态摩擦低,轻微倾斜就会滑落。

3. Bounciness(弹性)


作用:控制物体碰撞后的反弹强度。
值范围:0(无反弹)到 1(完全弹性碰撞,能量无损失)。
示例:
篮球:弹性设为 0.8,反弹高度高。
黏土:弹性设为 0,碰撞后无反弹。

4. Friction Combine(摩擦组合模式)


作用:当两个物体接触时,决定如何计算它们的 总摩擦系数。
可选模式:
Average:取两者摩擦值的平均值。
Minimum:取两者中较小的摩擦值。
Maximum:取两者中较大的摩擦值。
Multiply:将两者摩擦值相乘。
示例:
冰面(摩擦 0.1)与橡胶(摩擦 0.8)接触时:
Average:总摩擦为 0.45。
Minimum:总摩擦为 0.1(物体会滑动更远)

5. Bounce Combine(反弹组合模式)


作用:当两个物体碰撞时,决定如何计算它们的 总反弹强度。
可选模式:与 Friction Combine 相同(Average、Minimum 等)。
示例:
弹性球(弹性 1)与地面(弹性 0)碰撞时:
Average:总弹性为 0.5(中等反弹)。
Maximum:总弹性为 1(完全反弹)。

三、总结

一、3D 碰撞器类型汇总表

碰撞器类型用途核心参数优点缺点
Box Collider方形/矩形物体(如箱子、墙壁)Size(尺寸)、Center(中心偏移)计算效率高,性能消耗最低无法贴合复杂形状
Sphere Collider球体或近似球形物体(如炮弹、头部检测)Radius(半径)、Center(球心位置)计算速度快,适合动态物体仅适用于对称圆形物体
Capsule Collider角色控制器(如人体、圆柱形物体)Height(高度)、Radius(半径)、Direction(胶囊朝向)移动稳定,结合球体与圆柱体优势无法适配非对称形状
Mesh Collider复杂模型(如高精度地形、不规则物体)Mesh(指定网格)、Convex(凸面体)、Cooking Options(处理方式)完全贴合模型,精度最高性能消耗大,非凸面体仅限静态
Wheel Collider车辆轮胎模拟Mass(质量)、Radius(半径)、Suspension Distance(悬架行程)、Force App Point Distance(受力点距离)、Wheel Damping Rate(阻尼率)内置车辆物理特性(摩擦力、悬挂)需配合 Rigidbody 使用,参数复杂
Terrain Collider地形系统适配(如开放世界)Terrain Data(地形数据)、Enable Tree Colliders(启用树木碰撞)自动匹配地形高度图,节省配置时间仅适用于 Unity 地形系统

二、物理材质参数汇总表

参数作用值范围/模式示例场景
Dynamic Friction控制物体 运动时 的滑动摩擦力0(无摩擦)到 1(最大摩擦)冰面(0.1)、橡胶(0.8)
Static Friction控制物体 静止时 的静摩擦力,决定开始运动所需的力0(极易滑动)到 1(极难滑动)斜面木箱(低值易滑落)
Bounciness控制碰撞后的反弹强度0(无反弹)到 1(完全弹性碰撞)篮球(0.8)、黏土(0)
Friction Combine计算两物体接触时的总摩擦系数Average(平均值)、Minimum(最小值)、Maximum(最大值)、Multiply(乘积)冰面与橡胶接触(Average=0.45)
Bounce Combine计算两物体碰撞时的总反弹强度同上弹性球与地面碰撞(Maximum=完全反弹)

相关文章:

  • 前端学习(3)—— CSS实现热搜榜
  • OAuth安全架构深度剖析:协议机制与攻防实践
  • 操作系统实战——QEMU模拟器搭建【rCore 操作系统】
  • 后端开发面试高频50个问题,简单解答
  • w~大模型~合集30
  • Linux 软硬连接详解
  • 如何配置本机host文件
  • 学习笔记:黑马程序员JavaWeb开发教程(2025.4.3)
  • phpstorm2024.3 设置中文
  • 国产大模型「五强争霸」:决战AGI,谁主沉浮?
  • Go 语言即时通讯系统开发日志-day1:从简单消息收发 Demo 起步
  • Python-AI调用大模型 给出大模型人格案例
  • java反序列化commons-collections链1
  • 魔搭社区(modelscope)和huggingface下载模型到本地的方法
  • 基于STM32、HAL库的ICP-20100气压传感器 驱动程序设计
  • 从 JIT 即时编译一直讲到CGI|FastGGI|WSGI|ASGI四种协议的实现细节
  • spdlog日志格式化 标志全指南
  • GPT系列:自然语言处理的演进与多模态的探索
  • 从规划到完善,原型标注图全流程设计
  • 2025年渗透测试面试题总结-渗透测试红队面试八(题目+回答)
  • 白天气温超30℃的北京,晚间下起了冰雹
  • 威尼斯建筑双年展总策划:山的另一边有什么在等着我们
  • 智能手表眼镜等存泄密隐患,国安部提醒:严禁在涉密场所使用
  • 从普通人经历中发现历史,王笛解读《线索与痕迹》
  • 济南市委副秘书长吕英伟已任历下区领导
  • 男子退机票被收票价90%的手续费,律师:虽然合规,但显失公平