【零基础入门unity游戏开发——unity3D篇】3D物理系统之 —— 3D刚体组件Rigidbody

发布于:2025-03-15 ⋅ 阅读:(17) ⋅ 点赞:(0)

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇

  • 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的同学入门。
  • 【unity通用篇】:主要讲解unity的基础通用的知识,包括unity界面、unity脚本、unity资源管理、unity动画、unity摄像机等,适合unity初学者入门。
  • 【unity3D篇】:主要讲解unity3D的知识,unity3D角色、unity3D物理系统、unity3D光照等,适合只想做2D游戏的开发者学习。
  • 【unity2D篇】unity2D篇:主要讲解unity2D的知识,包括unity2D角色、unity2D物理系统、unity2D光照等,适合只想做3D游戏的开发者学习。

这样方便大家按需选择性的去学习,比如有编程基础的大概率可以直接从unity通用篇开始入门,没有编程基础的建议从C#篇开始学习。只想做2D游戏的话,可以直接从unity2D篇开始学习,3D篇大概率就不需要看了,节约学习时间成本。

前言

Unity 3D物理系统中的刚体组件 (Rigidbody) 是控制物体在物理世界中如何运动的关键组件。它使物体受力、重力、碰撞等物理影响,从而模拟出真实的运动行为。

一般默认重力是-9.81,可以前往项目设置修改默认值
在这里插入图片描述

两个物体要发生碰撞,必须满足:(重要

  • 两个物体都有 Collider(碰撞器)。
  • 至少一个物体有 Rigidbody。

一、Rigidbody的介绍

1、Rigidbody 是什么?

Rigidbody 是 Unity 中的一个组件,它的作用是让物体能够受到物理规则的影响。比如:

  • 物体会因为重力掉下来。

  • 物体可以被推动、旋转,或者和其他物体碰撞。

如果没有 Rigidbody,物体就像“幽灵”一样,不会受到任何物理影响,只能通过代码手动控制它的位置和旋转。

2、Rigidbody 的作用

  • 重力:让物体掉下来(比如一个球从高处落下)。

  • 碰撞:让物体可以和其他物体发生碰撞(比如球撞到墙会弹回来)。

  • 受力:让物体可以被推动(比如用代码给物体一个力,让它飞出去)。

3、怎么给物体添加 Rigidbody?

  • 选中你的物体(比如一个立方体或球)。

  • 在右侧的 Inspector 窗口,点击 Add Component。

  • 搜索 Rigidbody,然后点击添加。

4、Rigidbody参数介绍

在这里插入图片描述

参数 含义 功能
Mass 质量 物体的质量。质量越大惯性越大。
Drag 线性阻尼 空气阻力。0表示没有空气阻力,较高的值会产生更快的衰减速率。
Angular Drag 角阻尼 旋转空气阻力。0表示没有旋转空气阻力, 极大时使物体立即停止旋转。
Automatic Center Of Mass 自动质心 启用以使用物理系统根据刚体的形状和比例预测的刚体质心。禁用可设置您自己的质心 X、Y 和 Z 坐标。
Automatic Tensor 自动张量 启用以使用物理系统对刚体的预测张量和张量旋转,基于所有连接的 colliders .与质量一样,惯性张量定义使刚体移动所需的力或扭矩;但是,质量影响线性运动,而惯性张量影响旋转运动。禁用 可改为张量设置您自己的 X、Y 和 Z 坐标(请参阅下面的属性)。
Use Gravity 使用重力 切换 Rigidbody 上的重力效果。如果启用,物理系统将施加一个力,使游戏对象沿模拟重力的方向移动(默认情况下,沿 y 轴向下移动)。默认情况下,Use Gravity 处于启用状态。
Is Kinematic 是运动学的 在游戏对象的基于物理的运动和运动之间切换。启用 Is Kinematic 后,物理系统无法施加力来移动或旋转游戏对象,而 Unity 只能通过其 Transform 移动和旋转游戏对象。
Interpolate 插值 物体运动插值模式,让刚体物体移动更平滑。当发现刚体运动时抖动,可以尝试下面的 选项:None(无),不应用插值;Interpo