#line #bevy #drawing #graphics

bevy_prototype_debug_lines

提供简单线条绘制 API 的 bevy 原型插件

24 个版本

0.12.0 2024年6月5日
0.11.1 2023年7月20日
0.10.2 2023年5月22日
0.10.1 2023年3月12日
0.2.0 2021年3月5日

#435 in 游戏开发

Download history 271/week @ 2024-05-05 278/week @ 2024-05-12 320/week @ 2024-05-19 261/week @ 2024-05-26 470/week @ 2024-06-02 161/week @ 2024-06-09 273/week @ 2024-06-16 267/week @ 2024-06-23 42/week @ 2024-06-30 98/week @ 2024-07-07 232/week @ 2024-07-14 198/week @ 2024-07-21 369/week @ 2024-07-28 249/week @ 2024-08-04 299/week @ 2024-08-11 148/week @ 2024-08-18

1,088 每月下载量
6 工具包中使用(5 个直接使用)

MIT 许可证

640KB
1K SLoC

bevy_debug_lines

crates.io docs.rs

提供简单线条绘制 API 的 bevy 插件。

demo demo_shapes demo_2 点击上面的演示来播放。

主分支没有稳定性保证。

关于

此插件使用着色器并将单个点发送到 GPU,然后通过移动几何体来绘制线条。对于大量线条来说,这相当快,并且移动线条没有额外的成本。

用法

bevy_prototype_debug_lines 添加到您的 Cargo.toml

[dependencies]
bevy_prototype_debug_lines = "0.12"
# Or, for 3d:
# bevy_prototype_debug_lines = { version = "0.12", features = ["3d"] }

App:: 阶段中添加插件

use bevy::prelude::*;
use bevy_prototype_debug_lines::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(DebugLinesPlugin::default())
//      ...
        .run();
}

使用 DebugLines 资源在您拥有的任何系统中绘制线条

fn some_system(
//  ...
    mut lines: ResMut<DebugLines>,
) {
    let start = Vec3::splat(-1.0);
    let end = Vec3::splat(1.0);
    let duration = 0.0;     // Duration of 0 will show the line for 1 frame.
    lines.line(start, end, duration);
}

使用 DebugLinesPlugin:: 方法更改深度测试(通过几何体绘制线条而不是始终在顶部)

use bevy::prelude::*;
use bevy_prototype_debug_lines::*;

fn main() {
    App::new()
    .add_plugins(DefaultPlugins)
    .add_plugins(DebugLinesPlugin::with_depth_test(true))
//  ...
    .run();
}

请参阅 示例 以获取更完整的用法示例。

故障排除

线条不显示

问题:即使在添加了 DebugLinesPlugin 并使用 DebugLines::lines 后,线条仍然不会显示在屏幕上。

解决方案:检查 bevy_debug_lines 的维度功能,在运行游戏时,应该会有一个类似以下日志消息:

INFO bevy_prototype_debug_lines: Loaded 2d debug lines plugin.

请注意 Loaded 2d debug,这应该与你在游戏中使用的匹配。这是3D游戏吗?如果是,你应该将 bevy_prototype_debug_lines/3d 功能标志添加到你的 Cargo.toml 中。它看起来应该是这样的:

bevy_prototype_debug_lines = { version = "0.12", features = ["3d"] }

运行示例

你可以这样运行示例

cargo run --example 3d --features="example_deps"

其中 3d示例 中的一个文件。

0.3.0 版本中的更改

0.3.0 中,已经删除了 thickness 参数。我认为它对性能、时间或问题的影响不大。但是,如果你有不同的看法,请在 此问题 中告诉我。

这实际上是微不足道的更改(即你的代码仍然可以编译),因为添加了 duration,它占据了相同的位置,但请注意,你的代码仍然需要更新(可能只需将旧的 thickness 值设置为 0,如果你不关心持续时间之类的功能)。

0.6.0 版本中的更改

  • 支持 Bevy 0.6。
  • 使用 .wgsl 着色器,这应该会提高网络兼容性。
  • 已删除 DebugLines.depth_check 字段,以支持 DebugLinesPlugin::with_depth_test() -- 请参阅 depth_test 示例。
  • 在添加插件时,我们现在需要使用 DebugLinesPlugin::default() 而不是仅仅 DebugLinesPlugin
  • 由于 Bevy 渲染器的底层变化,3D 和 2D 已分开为独立的功能。如果你在 3D 游戏中使用 bevy_debug_lines,请将 features = ["3d"] 行添加到你的 bevy_prototype_debug_lines 依赖项中。抱歉!

Bevy 版本支持

bevy bevy_prototype_debug_lines
0.12 0.12
0.11 0.11
0.10 0.10
0.9 0.9
0.8 0.8
0.7 0.7
0.6 0.6
0.5 0.3
0.4 0.2.1

如果您有任何要求、改进或建议如何使此软件包更易于使用或其他方面的建议,请随时告诉我。

依赖项

~39–77MB
~1.5M SLoC