【Unity踩坑】为什么有Rigidbody的物体运行时位置会变化

先上图,不知你有没有注意过这个现象呢?

一个物体加上了Rigidbody组件,当勾选上Use Gravity时,运行后,这个物体的位置的值会有变化。这是为什么呢?

刚体由物理系统处理,因此它会对重力、碰撞等做出反应。
物理引擎在每个 fixedupdate 帧上运行(每秒运行多次),并根据对象发生的情况更新位置和速度。

执行诸如"如果没有力 => 不做任何事情"这样的 if 语句会非常慢,因为物理系统能够处理很多很多的对象,所以它只是

下一个位置 = 当前位置 + 速度 * 时间

不管是否真的发生了什么,但我们不需要做任何检查来查看是否发生了任何事情,如果我们有 1000 个对象,这将会很慢。

由于浮点数并不精确,你可能会看到事物发生微小的移动,就像这样。由于浮点数不精确,
你的物体已向左移动了 0.000000059604 个单位,这甚至不可见。

简单来讲,这个变化是由物理系统引起的,变化的值非常微小,可以忽略不计。

参考:

https://www.reddit.com/r/Unity3D/comments/o5koa7/hi_new_to_unity_why_does_adding_rigidbody_fuck_up/

相关推荐
一个笔记本7 小时前
godot log | 修改main scene
游戏引擎·godot
nnsix9 小时前
Unity PicoVR开发 实时预览Unity场景 在Pico设备中(串流)
unity·游戏引擎
一只一只14 小时前
Unity之UGUI Button按钮组件详细使用教程
unity·游戏引擎·ugui·button·ugui button
神米米17 小时前
Maya快速安装UE4 布料权重绘制插件PhysX导出apx
游戏引擎·ue4·maya
WarPigs18 小时前
Unity阴影
unity·游戏引擎
一只一只18 小时前
Unity之Invoke
unity·游戏引擎·invoke
技术小甜甜20 小时前
【Godot】【入门】信号系统从 0 到 1(UI/玩法彻底解耦的通用写法)
ui·游戏引擎·godot
技术小甜甜21 小时前
【Godot】【入门】节点生命周期怎么用(避免帧循环乱写导致卡顿的范式)
游戏引擎·godot
tealcwu21 小时前
【Unity踩坑】Simulate Touch Input From Mouse or Pen 导致检测不到鼠标点击和滚轮
unity·计算机外设·游戏引擎
ThreePointsHeat21 小时前
Unity WebGL打包后启动方法,部署本地服务器
unity·游戏引擎·webgl