Unity初识Rigidbody2D

这篇具有很好参考价值的文章主要介绍了Unity初识Rigidbody2D。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Ridigbody2D:用于2D精灵刚体物理组件。

精灵:2D图形对象,本质是标准图形纹理。

刚体:使对象的行为方式受物理控制,接受力和扭矩行为方式基于施加的作用力。

Rigidbody2D组件的检查器inspector在设置不同身体类型时显示如下:

Unity初识Rigidbody2D
Unity初识Rigidbody2D
Unity初识Rigidbody2D

身体类型

Unity初识Rigidbody2D

  Dynamic(动态):具有可用的全套属性,如质量和阻力,并受重力和作用力影响;是2D刚体的默认类型;最具互动性,性能成本最高。

  Kinematic(运动学):仅在用户控制(脚本)下进行移动,不受重力和作用力影响只与Dynamic刚体碰撞;速度快;系统资源需求低;

  静态的(Static):顾名思义,不是为了移动而设计的,简单理解为无限质量,不可撼动;只能与Dynamic刚体碰撞。

实例对比如下,白色图形都添加了碰撞体和刚体组件。

其中:三角形为静态碰撞体,表现为“悬浮”空中,即使被圆形碰撞,自身也没有移动。

圆形为Dynamic碰撞体,表现为具有质量而受重力落到地面,并与所有碰撞体发生碰撞。

正方形为Kinematic碰撞体,为我自己通过脚本移动,表现为不受重力影响,不与属于静态碰撞体的三角形碰撞,与Dynamic类型的圆形发生碰撞。

Unity初识Rigidbody2D

材质:刚体的物理材质两个参数是摩擦力弹力

  物理材质优先级:Collider2D>RigidBody2D>全局物理材质

  实例如下:在项目中创建一个物理材质及其检查器inspector如下:

Unity初识Rigidbody2D
Unity初识Rigidbody2D

将材质挂在圆形的刚体物理材质上,为便于比较设置弹力为4

Unity初识Rigidbody2D

此时再次运行前面的实例,效果如下:

Unity初识Rigidbody2D

弹力太大圆形直接弹飞可见使用的材质有了效果。


模拟的

Unity初识Rigidbody2D

默认为勾选状态,取消勾选则不会发生物理仿真效果。

模拟包括:运动、Collider2D的碰撞、Joint2D的约束效果、是否驻留在内存。

更改此属性在内存和处理上,都比直接启用/禁用Collider2D组件和Joint2D组件更有效率。

实例如下:圆下方的三角形取消了勾选状态,不再模拟所以圆直接穿了过去。

Unity初识Rigidbody2D

④ 自动质量:2D刚体从对撞中检查物体质量。

 质量:即2D刚体的质量;自动质量和质量互斥。

 线性阻尼和角阻力:即线性阻力和角度阻力,分别影响位置和旋转运动的阻力系数。

 重力大小:即物体受重力的程度。

Unity初识Rigidbody2D

⑤ 碰撞检测

Unity初识Rigidbody2D

离散(Discrete):可以理解为是断续地更新,比如物体A在当前帧在B的左边,下一帧运动到B的右边,在两帧之间没有发生物理更新,便不        会检测出碰撞。尤其是物体高速运动,不适用于这种检测模式

持续(Continuous):连续检测,移动即检测,可以防止上文离散模式的情况,防止对象穿过所有静态的碰撞体。当然,需要更多的机器性能。


休眠模式

在休眠模式下,Unity会把处于静止状态的物理模拟去除,这样处理可以节省计算资源。

从不休眠:顾名思义,从不进入休眠模式,此模式下消耗的系统资源多。

开始唤醒:游戏开始时处于该模式下的物体是非休眠状态。

开始休眠:游戏开始时处于该模式下的物体处于休眠状态。

举例如下:两个Dynamic碰撞体类型的三角形,左边的设为开始休眠状态,右边设为开始唤醒状态。

运行实例后表现为:“开始休眠”模式的三角形在开始时被Unity去除了物理模拟,最基本的表现是没有质量而没有掉下去。

“开始唤醒”状态的三角形开始的时候便落了下来。

Unity初识Rigidbody2D


插值:在更新之间使用的物理插值。

如果图形更新比物理更新频繁的多,那么视觉上看对象运动起来可能是“断断续续”而不平滑流畅,此时打开插值选项就会很有用。

插值模式:根据上一帧与当前帧的位置对运动进行平滑处理。

外推模式:对下一帧的估计位置来对运动进行平滑处理。


⑧ Constraints(限制)

Unity初识Rigidbody2D

顾名思义,冻结X则对象无法延X方向移动,Y同理;

冻结旋转的一个用途是用于2D精灵使其移动时不会发生旋转

实例如下:两个类型为Dynamic碰撞体的三角形,左不作限制,右冻结旋转。

Unity初识Rigidbody2D

⑨Info:用于显示当前设置的信息状态。

Unity初识Rigidbody2D

Position:位置

Roration:旋转

Velocity:速度

Angular Velocity:角速度

Inertia:惯性

Local Center of Mass:局部质心

World Center of Mass:世界质心

Sleep State:睡眠状态

第一次写博客,如有错误和建议欢迎补充,指正和交流。文章来源地址https://www.toymoban.com/news/detail-476065.html

到了这里,关于Unity初识Rigidbody2D的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第二十五章 Unity 刚体Rigidbody

    在物理学中,静止和匀速直线运动是物体的平衡状态,如果给该物体施加某一个力的话,物体的平衡状态就会改变,当然这个真理的前提是理想状态。我们知道在现实世界中,由于重力和摩擦力的存在,任何一个物体都不可能永无止境的运动下去。因此,要想让物体保持运动

    2024年02月06日
    浏览(58)
  • Unity 关于Rigidbody刚体组件的理解

    一、基本了解 刚体Rigidbody因具体物理相关的属性,使得实际应用中更有真实感。应用也多: Rigidbody它可以受到重力、碰撞或者力的作用,所以我们可以用它模拟物体的真实物理行为,如受到重力的作用、与其他刚体对象进行碰撞,并模拟物体的运动和旋转。 一个带有刚体

    2024年02月03日
    浏览(38)
  • 【Unity】什么是刚体(Rigidbody)?刚体怎么用?

    为游戏物体添加一个刚体: 一个物体有了刚体,它就会受Unity模拟出的自然界中的力的影响了 Drag(空气阻力)补充: 空气阻力越大,物体移动时受到的阻力就越大,力的衰减就越快。 Angular Drag(扭矩旋转时空气阻力)补充: 物体受到力后会旋转,Angular Drag就是物体旋转时

    2024年02月05日
    浏览(44)
  • Unity --- 物理引擎 ---- 刚体RigidBody 与 碰撞器 collider

      1.RigidBody(刚体)的作用是让物体具有物理特性(比如说重力,摩檫力等等) 2.如果想让物体能够与其它物体发生碰撞的话,我们还需要一个组件 --- Colider碰撞器组件 1.上图就是Unity中提供的已经准备好的各种形状的碰撞器组件 2.形成不同形状的碰撞器所需的面数不同,面数

    2024年02月16日
    浏览(40)
  • 【解决】Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5...

    开发平台:Unity 2021.3.7f1c1   Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported since Unity 5. If you want to use a non-convex mesh either make the Rigidbody kinematic or remove the Rigidbody component. Scene hierarchy path “XXXX”, Mesh asset path “XXX/XXX/XX” Mesh name “XXX” 翻译 :自 Unity 5 起,不再支持

    2024年02月04日
    浏览(79)
  • 初识Unity(十步做好你的第一个unity小游戏)

    一、unity的整体认识 1、创建项目工程文件以及unity布局介绍 (1)打开unityhub,新建项目工程(Project)选择保存路径。 (2)unity的多种布局(窗口的排列)。 认识了tall布局下各个view的功能,四个开发视图(Scene,Project,Hierarchy,Inspector)以及一个game视图。 Scene(场景)视图

    2024年01月24日
    浏览(57)
  • Cocos Creator的rigidBody.applyForce变成了滚动

    序:         1、原因是因为没有调整摩擦系数physics-material         2、摩擦系数调整你要在你的节点 一个物理材料才会有的,教程没跳过去了所以没有         3、扩展阅读第一话:入行程序员的一波三折 最终效果: git录屏会卡,其实过程很平滑         正文: 左下角

    2024年02月13日
    浏览(31)
  • 初识Unity——基本模型、场景操作、世界坐标系和局部坐标系

    目录 基本模型 创建基本模型 基本模型的复制  复杂模型 场景操作 聚焦 旋转 移动 场景视野  世界坐标系 基本介绍 原点 局部坐标系    创建基本模型之后,会在我们视野中心生成这个模型;当我们需要复制模型的时候,可以使用 “Duplicate”来进行复制,随后拖出来,不使

    2024年02月08日
    浏览(78)
  • Unity Shader 学习(二):初识ShaderLab -- 以“Unlit Shader”模板为例 02

    上一篇:Unity Shader 学习(一):初识ShaderLab – 以“Unlit Shader”模板为例 01 在Unlit Shader模板中引用了 UnityCG.cginc 中的很多宏和函数方法,这篇继续学习模板中的几个函数以及 UnityCG.cginc 中一些可能会用到的结构;最后再了解一些自己写Shader时大概率会用到的Cg/HLSL函数方法。

    2024年02月03日
    浏览(40)
  • Unity Shader 学习(一):初识ShaderLab -- 以“Unlit Shader”模板为例 01

    阅读本文前需要对 渲染流程 有简单了解,并且要知道 Unity ShaderLab、Cg/HLSL 大概是什么,它们并不是一回事。 然后, 看什么教程都不如直接看官方文档: ShaderLab - Unity手册 HLSL参考 首先创建一个 Unlit Shader 模板(Project 窗口,右键 → Create → Shader → Unlit Shader) 直接上代码:

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包