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

【零基础入门unity游戏开发——2D篇】2D物理系统 —— 2D刚体组件(Rigidbody 2d)

考虑到每个人基础可能不一样,且并不是所有人都有同时做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篇大概率就不需要看了,节约学习时间成本。

文章目录

  • 前言
  • 2D物理系统中的刚体组件
  • 2D物理系统中碰撞产生的条件
  • Rigidbody2D刚体2D组件参数
    • 1、Body Type 刚体类型
    • 2、Dynamic 动态
    • 3、Material 材质
    • 4、Simulated 模拟的
    • 5、Use Auto Mass 使用自动质量
    • 6、Mass 质量
    • 7、Linear Drag 线性阻尼
    • 8、Angular Drag 角阻力
    • 9、Gravity Scale 重力大小
    • 10、Collision Detection 碰撞检测
    • 11、Sleeping Mode 休眠模式
    • 12、Interpolate 插值
    • 13、Constraints 约束
    • 14、Info 信息
    • 15、Kinematic 运动
    • 16、Simulated 模拟的
    • 17、Use Full Kinematic Contacts 使用完全运动学联系
    • 18、Static 静态
  • 如何选择不同类型的刚体
  • Rigidbody2D刚体2D代码控制
  • 专栏推荐
  • 完结

前言

学习2D刚体组件Rigidbody2d之前,建议先去学习之前我写过的【3D刚体组件Rigidbody】,因为它们非常的类似。由于我们之前详细讲解了3D物理系统,所以在讲解2D物理系统时会相对简洁一些,一些讲过的知识点就不过多赘述了。

2D物理系统中的刚体组件

  • 刚体是物理系统中用于帮助我们进行模拟物理碰撞中力的效果的。
  • 2D物理系统中的刚体和3D中的刚体基本是一样的,最大的区别是对象只会在XY平面中移动,并且只在垂直于该平面的轴上旋转。

2D物理系统中碰撞产生的条件

在Unity中,2D物理系统中碰撞产生的条件是:

  • 两个物体都必须有Collider 2D组件,用于定义物体的形状和边界。
  • 至少有一个物体必须有Rigidbody 2D组件,用于让物体受到物理引擎的控制。
  • 两个物体的Layer必须在Physics 2D Settings中设置为可以相互碰撞。
  • 两个物体的Collider 2D组件必须有相交或重叠的部分。
  • 如果以上条件都满足,那么当两个物体接触时,就会产生碰撞,并触发相应的事件和回调函数,例如OnCollisionEnter2D,OnCollisionStay2D和OnCollisionExit2D。
  • 碰撞产生后,物理引擎会根据两个物体的质量,速度,角速度,弹力和摩擦力等属性来计算碰撞的响应,并更新物体的位置和旋转。
  • 如果需要自定义碰撞的响应,可以使用Physics Material 2D组件来调整弹力和摩擦力。

Rigidbody2D刚体2D组件参数

1、Body Type 刚体类型


http://www.kler.cn/a/599291.html

相关文章:

  • 稳健投资新标杆,云济会布局国库券回购助推金融市场优化
  • 解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式
  • Spring MVC请求与响应全解析:从参数绑定到异常处理
  • 通过Racket 运行arc这个新型的lisp语言
  • 量子边缘计算:当Wasm遇见量子退火机——解锁组合优化问题的终极加速方案
  • VSCode相关文件折叠展开
  • Qt 高效读写JSON文件,玩转QJsonDocument与QJsonObject
  • Chrome Performance 面板完全指南:从卡顿到丝滑的终极调试术
  • 44、如何在 O(n) 时间复杂度内构建一个堆?
  • 为什么vector扩容会导致迭代器失效
  • jangow靶机攻略
  • Jenkins 集成 SonarQube 代码静态检查使用说明
  • 内网(域)渗透测试流程和模拟测试day--2--漏洞利用getshell
  • 同一个局域网的话 如何访问另一台电脑的ip
  • 检波、限幅、钳位电路
  • 【深度学习】【目标检测】【OnnxRuntime】【C++】YOLOV3模型部署
  • 模版的特化引发的权限扩大的解决方法
  • 基于51单片机的双机通信温度检测报警系统的仿真设计
  • 腾讯云大模型知识引擎×DeepSeek | 企业应用快速接入手册
  • LVS-DR模式配置脚本