Unity Physics和Havok Physics打造基于DOTS的项目

借助Unity的C#面向数据的技术堆栈(DOTS),打造丰富的交互式动态世界。

Physics colliders

Make games that matter

Physics solutions help you give weight to the elements of your game. Whether you’re building in 2D or 3D, a first-person camera or a side-scroller, your characters and objects can react realistically to the game world around them.

Unity Physics和Havok Physics

Unity Physics和Havok Physics均构建于面向数据的技术堆栈(DOTS)框架之上。您可以将项目从一个解决方案转换到另一个解决方案;它们可以同时运行。它们与数据兼容,可让您使用Unity强大的工具和工作流程。

Unity Physics

快捷、轻巧、无状态、可定制:这些便是我们新型Unity Physics解决方案的特色优势。

其构建于Unity C# DOTS框架上,可直接联网使用,可完全自定义,并且支持开箱即用。无论是在制作下一个热门移动游戏,还是构建新的玩家多人联网主机游戏体验,Unity Physics都可以利用Burst编译器和作业系统在各种硬件之间进行扩展。

Unity Physics目前为预览版本,可通过Package Manager获得,可兼容Unity 2019.1及更高版本。

Havok Physics

Havok Physics
Havok Physics 是一种针对需要生成复杂物理模拟的客户的高端解决方案。它由业界领先的 Havok Physics 引擎提供支持,该引擎为这一代主机超过一半的热门游戏提供支持。它使用与 Unity Physics 相同的 C# DOTS 框架编写,但包括以本机 C++ 编写的闭源专有 Havok 物理引擎的性能、稳定性和功能。

查看有关如何访问 Havok Physics 的文档。

性能 
Havok Physics 针对典型游戏使用案例进行了大量优化。核心算法已经过多年改进,各种自动缓存策略(包括对不活动项目启用睡眠)意味着 CPU 资源只在需要处使用。

观看 Havok Physics Unity 集成:性能 - YouTube 

行为
Havok Physics 是一款强大的物理引擎,旨在处理最图形密集型游戏的性能要求,这些游戏通常包含具有大量物理交互的复杂场景。通过与业界合作伙伴 20 多年的合作,Havok 已经发现、解决了物理模拟面临的许多最棘手的问题并且仍在不断挑战。这包括物理实体的稳定堆叠、具有快速移动物体的最小伪影以及通常更受控的行为,尤其是在使用非优化的碰撞几何体时。 

观看堆叠稳定性 - YouTube网格焊接 - YouTube

Physics for object-oriented projects

If you’re working on an object-oriented project, there are two built-in physics engines to consider that cover both 3D and 2D game development.

Rust with PhysX

Built-in 3D physics: NVIDIA PhysX integration

Unity’s built-in 3D physics engine is an integration of the PhysX engine in close partnership with NVIDIA. PhysX is available directly through the Editor.

NVIDIA PhysX SDK is an open source, scalable real-time physics engine that enables advanced simulations for more immersive game play with true-to-life simulations and real-time dynamic effects. PhysX is a library for representing 3D worlds that lets you create and destroy actors and tracks their explicit or proximity-based interactions. 

PhysX SDK’s dynamics simulation capability includes support for collision, joints, and actuation using maximal and/or reduced coordinates. You can also query the world using a number of different tools, ranging from simple ray casts to sweep and overlap tests.

Learn about 3D physics
2D Physics

Built-in physics for 2D games

Unity comes with dedicated and optimized 2D physics, with many more features and optimizations to power your game.

2D Colliders enable accurate detection of your sprites’ shapes, from primitive to custom shapes. If they also include a Rigidbody 2D, the objects will react to gravity and behave as solid objects.

Objects anchored to another object also can benefit from physics with 2D Joints, adding realism to a sliding platform, chain, spring, or car. To simulate buoyancy or magnets, 2D Effectors can add non-contact physics effects.

Learn about 2D physics
“确定性”是什么意思?

确定性是指,当给出相同的一组输入信息时,可在物理模拟中获得相同的结果。Unity Physics与Havok Physics均可提供确定性结果。不过,由于不同的CPU架构(x86、ARM等)会在其数学计算中产生微小差异,因此模拟的确定性结果可能因硬件而异。

由于Burst将在今年晚些时候解决跨架构的确定性问题,Unity Physics也会自动受益于此功能,这表示可从任何设备上获得相同的模拟。

注意:对于单个架构的确定性,Unity Physics会尽快对Burst进行更新。

“无状态物理”是什么意思?

包括Havok在内的大多数物理引擎都通过智能优化来实现出众的性能和稳定性,例如缓存部分世界状态以绕过不同的计算或使其保持稳定。相反,无状态物理通过强力优化实现性能。正因为如此,并且由于Burst的未来版本能够跨多个架构执行,因此其可以使多个不同的联网场景受益。另一方面,Havok能够在某些场景中实现更高的性能和稳定性。

无状态物理如何影响网络游戏?

由于无状态物理能够在Burst的未来版本中跨多个CPU架构执行具备决定性的结果,其易于使用且可随时用于各种网络设置,包括客户端预测(例如FPS)、锁步客户端模拟(例如RTS)以及GGPO/回滚(例如格斗游戏)。

在我的游戏中使用Havok Physics有什么好处?

由于Havok Physics会缓存不同状态信息来执行智能优化,因此它可以在大型游戏或使用复杂物理系统的游戏中实现卓越性能。Havok Physics还可以在处理穿插物体和堆叠物体时提供更高的稳定性。由于高级摩擦模型需要缓存,行为也将得到改善。

我可以追溯性地将Havok Physics应用到我现有的游戏中吗?如果可以,操作难度如何呢?

Havok Physics和Unity Physics都使用了Unity Editor中的相同数据模型。您可以单一方式创作内容,然后根据游戏的具体需求或游戏世界的子集将内容加入任一物理后端或这两个物理后端。

新系统是否会破坏任何内容或使当前或未来项目变得复杂?

不会。Unity Physics与Havok Physics都是基于DOTS的可选软件包。不会中断任何现有内容,但如果要迁移到其中一个新的后端,则可能需要重新调整现有内容。

我们使用 Cookie 来确保为您提供网站的最佳体验。有关更多信息,请访问我们的 Cookie 政策页面

明白了