Repolode
avianphysics

avianphysics/avian

专为 Bevy 游戏引擎打造的 ECS 驱动 2D/3D 物理引擎,使用 Rust 编写。

Star
3,280
Fork
302
未关闭 Issue
212
最近提交
3天前

这是什么?

Avian 是为 Bevy 游戏引擎开发的物理引擎,使用 Rust 编写,分为 2D(avian2d)和 3D(avian3d)两个 crate。它直接基于 Bevy 的 ECS 设计,物理对象就是普通的实体和组件,无需额外维护一套独立的物理世界。

引擎支持动态、运动学和静态刚体,涵盖线速度与角速度、外力与冲量、阻尼、轴锁定、休眠以及连续碰撞检测。碰撞检测基于 Parry 库实现,同时提供碰撞事件、碰撞层、碰撞钩子、关节(固定、距离、移动、旋转、球形)以及射线检测、形状投射等空间查询功能,并包含固定时间步长下的 Transform 插值与调试渲染。

项目同时支持 f32 和 f64 精度,默认使用 f32。文档托管在 docs.rs 上,仓库中also附有大量 2D 和 3D 示例。

核心功能

  • 01动态、运动学和静态刚体,支持速度、阻尼与轴锁定
  • 02基于 Parry 的碰撞检测,提供碰撞层、碰撞事件和碰撞钩子
  • 03内置固定、距离、移动、旋转和球形关节
  • 04支持射线检测、形状投射等空间查询
  • 05固定时间步长下的 Transform 插值与外推
  • 06支持 f32 和 f64 精度

适用场景

  • 为基于 Bevy 开发的 2D 或 3D 游戏添加刚体物理与碰撞
  • 在 Bevy 模拟中实现铰链、滑块等关节约束
  • 利用射线或形状投射实现视线判断、弹道检测等玩法逻辑

快速上手

  1. 1

    在 Cargo.toml 的依赖中添加 avian3d(2D 项目则添加 avian2d)

    avian3d = "0.8"
  2. 2

    在 Bevy 应用中添加 PhysicsPlugins,并使用 RigidBody 和 Collider 生成物理实体

使用前须知

  • 仅适用于 Bevy 游戏引擎,在 Bevy 之外无法使用。
  • 当前为 1.0 之前的版本(0.8),不同版本之间 API 可能变化。
  • 每个 Bevy 版本都需要对应的 Avian 版本,升级 Bevy 时可能需要同步更新。

收录于专题

标签

常见问题

avian 是什么?
专为 Bevy 游戏引擎打造的 ECS 驱动 2D/3D 物理引擎,使用 Rust 编写。 Avian 是为 Bevy 游戏引擎开发的物理引擎,使用 Rust 编写,分为 2D(avian2d)和 3D(avian3d)两个 crate。它直接基于 Bevy 的 ECS 设计,物理对象就是普通的实体和组件,无需额外维护一套独立的物理世界。
avian 可以免费使用吗?用的什么许可证?
avian 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
avian 还在维护吗?
活跃维护中。avian 最近一次提交是在 2026年11月4日。
avian 适合用来做什么?
为基于 Bevy 开发的 2D 或 3D 游戏添加刚体物理与碰撞 在 Bevy 模拟中实现铰链、滑块等关节约束 利用射线或形状投射实现视线判断、弹道检测等玩法逻辑
avian 怎么安装和运行?
在 Cargo.toml 的依赖中添加 avian3d(2D 项目则添加 avian2d): avian3d = "0.8" 在 Bevy 应用中添加 PhysicsPlugins,并使用 RigidBody 和 Collider 生成物理实体
在哪里获取 avian?
源代码和安装说明在 GitHub 上:https://github.com/avianphysics/avian

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目