虽然Rigidbody 2D大致上可以看成是Rigidbody的2D化,大部分功能也是一致的,但是还是有一些细节问题。

一些事项:

1.任何添加到同一个 GameObject身上或者其子物体身上的 2D Collider组件都隐式的 附属于 那个 Rigidbody 2D.

2.当一个Collider 2D组件附属到一个Rigidbody 2D身上时,它就跟随Rigidbody 2D移动。这时不应该通过直接设置Transform 或者 Collider的偏移量来 移动。

3.附属于同一个 Rigidbody 2D的所有 Collider 2D,它们相互是不会发生碰撞检测的。

刚体类型:

1. Rigidbody 2D 有三个类型:Dynamic、Kinematic、Static

2. 刚体类型主要影响一下几个要素:

  a. 移动行为(位置、旋转)

  b. 碰撞体交互

3. 注意一点,虽然Rigidbody 经常被描述成 是与其它 rigidbody 相互碰撞,但是实际上是 附加在Rigidbody上的Collider在进行碰撞检测,Rigidbody在没有Collider的情况下,是没法相互碰撞的。

4. 改变Rigidbody 2D的类型是一个比较麻烦的事情。当一个刚体类型改变,许多关联的变量会立马重置,并且需要重新赋值,而且与刚体关联的所有Collider需要在下一个FixiedUpdate之前重新认知,这样可能会导致奇怪的表现。

刚体类型: Dynamic

概括来说,这种类型是为了 物理仿真运动而设计的。(让物体看起来更像现实世界行为)它的运动受重力、质量、其他力影响。并且这种类型会与其他所有刚体类型发生碰撞。

  • Simulated:该组件是否与仿真模拟交互。
  • Collision Detection:碰撞体之间的碰撞检测方式:
    • Discrete:在一个 物理更新期间,物理可以相互重叠、穿越。当速度太快时,碰撞只会在最新的位置检测,这就意味着,如果速度太快,使用这个选项会有问题。
    • Continuous:这个就不会存在Discete的问题,但是CPU消耗高。
  • Sleeping Model:在什么情况下,会休眠以节省性能。
    • Never Sleep:从不休眠
    • Start Awake:物体最初是醒着的
    • Start Asleep:物体最初是休眠的,但是遇到碰撞就会苏醒。
  • Interpolate:在物理更新中,物体移动的插值算法
    • None:
    • Interpolate:基于上一帧物体位置来插值模拟
    • Extrapolate:基于预测下一阵物体位置来插值模拟

刚体类型:Kinematic

这种类型,物体移动也是在仿真下进行的,但是却是在 用户非常明确的控制 的前提下进行的。

注意

  1. 这种类型不受力、重力的影响

  2. 它使用Rigidbody2D.MovePosition or Rigidbody2D.MoveRotation API来移动。

  3. 它使用物理引擎来查询 碰撞,并且通过编程来决定物体如何移动。

  4. 实际上,这种类型仍然通过它的速度来移动,但是它的速度却不受其他任何力的影响。

  5. 这种类型 不会 与其它Kinematic或者Static类型发生碰撞检测

  6. 在碰撞过程中,这种类型的物体表现为不受力(质量无穷大)。

  • Simulated:如果想要在运行时 与其它Collider 2D 发生物理仿真交互,就打开它。
  • Use Full Kinematic Constacts:开启它,该物体就可以与其它任意类型的Rigidbody 2D发生碰撞。

刚体类型:Static

1. 它只与 Dynamic 类型的Rigidbody 发生碰撞.

2. 无法拥有两个 Static 的Rigidbody 2D。

unity2D物理引擎之-Rigidbody 2D的更多相关文章

  1. 关于Unity中物理引擎的使用

    物理引擎控制刚体,刚体上面贴上图片,所以看起来就是游戏运行起来的状态 物理世界计算刚体的运行状态,通过贴图显现出运算结果. 一.物理引擎 1:Unity 2D物理引擎基于Box2D封装而成;2: 物理 ...

  2. 基于APE物理引擎的管线容积率计算方法

    容积率一般应用在房地产开发中,是指用地范围内地上总建筑面积与项目总用地面积的比值,这个参数是衡量建设用地使用强度的一项非常重要的指标.在其他行业,容积率的计算也非常重要,如产品利用率.管道使用率等等. ...

  3. 制作简单的2D物理引擎(零)

    最近发现了Github上的开源物理引擎项目Matter.js,对它很感兴趣,发现源码并不算长,算上注释大约1万行左右,值得剖析一番.Matter.js实现一个最小化的2D物理引擎,性能不错,故打算用C ...

  4. Matter.js – 你不能错过的 2D 物理引擎

    Matter.js 是一个 JavaScript 2D 刚体物理引擎的网页.Matter.Engine 模块包含用于创建和操作引擎的方法.这个引擎是一个管理更新和渲染世界的模拟控制器. Matter. ...

  5. [原]Unity3D深入浅出 - 物理引擎之刚体部件(Rigidbody)

    在虚拟世界中,任何物体都是没有活力的,要想变的真实,Rigidbody是必不可少的组件,下面介绍Rigidbody的各个属性: Mass:质量 Drag:阻力,对象在运动时遇到的空气阻力,0表示没有空 ...

  6. HTML5之2D物理引擎 Box2D for javascript Games 系列 翻外篇--如何结合createJS应用box2d.js

    太久没有更新了,新年回来工作,突然有收到网友的邮件提问,居然还有人在关注,惭愧,找了下电脑上还有一点儿存着,顺便先发这一个番外篇吧,好歹可以看到真实的效果,等我考完英语,一定会更新下一章," ...

  7. HTML5之2D物理引擎 Box2D for javascript Games 系列 第一部分

    我要的是能在H5页面上跑的javascript版的Box2D啊!!! 最近想学习Javascript版本的Box2D JS物理引擎,无奈搜了半天也没找到相对比较系统的资料 官方网站也只是简单的介绍,A ...

  8. Unity3D_(物理引擎)Rigidbody组件

    Rigidbody组件刚体(Rigidbody)是Unity物理引擎中的重要组件,一个游戏对象添加了刚体组件以后就开始接受物理力学的影响了,比如重力.空气摩擦力.碰撞产生的推力   Learn 相同高 ...

  9. 制作简单的2D物理引擎(一)——动力学基础

    一切的基础 点 在二维平面中,点$P$就是坐标$(x,y)$,点集就是一系列坐标的集合$\{P_1,P_2,...,P_n\}$,不过这个集合是有序的(顺时针). 向量 加减运算 $$\vec{P}\ ...

随机推荐

  1. springMVC 获取request参数

    持续补充............ GET 常用的:@PathVariable  @RequestParam   request.getParameter POST 常用的:@ResponseBody  ...

  2. 对Word2Vec的理解

    1. word embedding 在NLP领域,首先要把文字或者语言转化为计算机能处理的形式.一般来说计算机只能处理数值型的数据,所以,在NLP的开始,有一个很重要的工作,就是将文字转化为数字,把这 ...

  3. WebService简单Demo

    看了网上好多关于webservice的例子,基本上对初学者来说都是模棱两可云里雾里,现在,我将网上关于webservice的讲解提炼出来,通过一个最简单使用并且方便的例子,告诉大家什么是webserv ...

  4. 微信公众号添加word文件

    微信公众号添加word文件的教程 我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众 ...

  5. SkyWalking 搭建及简单使用(Linux)

    1.需求 公司项目采用微服务的架构,服务很多,人工监控是不可能的,项目的访问量很大,想通过日志查找某个方法中性能的问题也是非常困难的.但是系统的性能问题是不能忽视的.系统性能检测的问题如鲠在喉,经过长 ...

  6. UIAutomator环境Android8.0 环境异常解决

    个人PC环境 ANDROID_HOME:F:\1Study\Andriod\51zxw_2018-0102\Sdk ANT_HOME:D:\ant\apache-ant-1.10.5\ CLASSPA ...

  7. SPM:Single-stage Multi-person Pose Machines

    figure1图b figure1 -a   figure3-a 图一-a

  8. [leetcode/lintcode 题解] Google面试题:合法组合

    给一个单词s,和一个字符串集合str.这个单词每次去掉一个字母,直到剩下最后一个字母.求验证是否存在一种删除的顺序,这个顺序下所有的单词都在str中.例如单词是’abc’,字符串集合是{‘a’,’ab ...

  9. Java 字节流

    OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节,定义了输出字节流的基本共性功能方法. OutputStream有很多子类,其中子类FileOutputStream ...

  10. JDBC的开发步骤

    一.JDBC概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问, 它由一组用Jav ...