ue3dUnity 2021 新2D物理模拟提升扩展性

Unity 2021 新2D物理模拟提升扩展性

分类:

在 Unity 2021.2 中,官方为 2D 物理引入了两个新功能,可直接访问原始形状并解锁额外的可扩展性。但本人比较关心是新物理功能是否允许我们在每一帧更新这些碰撞器的形状后可以匹配脊柱动画中的形状,那么大家可能需要进行实测来确定是否支持自己想要的功能。

ue3d - Unity 2021 新2D物理模拟提升扩展性

CustomCollider2D

  • 一个新的碰撞器,可以直接访问创建、更新和删除实际的原始形状。
  • 它可以使用物理引擎理解的可用原始形状的任何组合,即圆形、胶囊、多边形或边缘。
  • 作为 2D Collider,它会自动继承所有现有功能,例如物理材质、触发器、物理回调、效应器兼容性、场景 Gizmos 等。
  • 物理形状属性也可以在运行时修改。

PolygonCollider2D 要考虑的主要事情是它是一种蛮力但方便的碰撞器,大概意思是它接受定义凹形轮廓的路径,但是 Unity 本身物理系统的限制根本不理解这些路径,它们需要被人为处理,所以不断地改变它们意味着在了解 CustomCollider2D 之前,必须进行大量的转换,它们必须通过 LibTess 才能将它们细分为更多凸多边形,这样会耗费 CPU 时间。

但 CustomCollider2D 则让大家可以通过对形状本身的原始访问来做任何想做的事情,限制实际上取决于物理引擎的固有限制,像大多数物理引擎一样,它不希望形状变形,而是只改变它们所附着的物体所定义的姿势。总之,这是一个不可变的以获得性能的功能。

PhysicsShapeGroup2D

  • 表示原始形状的简单集合
  • 可以添加、修改或删除物理形状,并且可以合并 PhysicsShapeGroup2D。
  • 旨在定义 CustomCollider2D 中的形状
  • 可以通过在任何现有 2D 碰撞器上使用 Collider2D.GetShapes 或在任何 Rigidbody2D 上使用 Rigidbody2D.GetShapes 来填充 PhysicsShapeGroup2D。

实际的变形是由使用任何喜欢的方法完成的,因此没有特殊处理或固定特征。例如,你可能正在获取某个发射器的轮廓并将其分解为一堆多边形,或者可能正在从预先计算的存储物理形状中检索它。你可以使用 PhysicsShapeGroup2D 设置物理形状,也可以使用 CustomCollider2D.SetCustomShapes 形状、顶点的 NativeArray。

又如果你想创建一个工具,例如:从 PolygonCollider2D 读取形状并希望在 CustomCollider2D 上按顺序触发它们,那么你就可以从任何现有的 GetShapes 读取 PhysicsShapeGroup2D 了。

相关信息

  • 使用版本:2021.2
  • 期待:95
  • 更新条目:8
  • 适用软件:Unity
  • 说明:无
  • 编号:55627

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!