This is a little hard to describe and I might be misunderstanding some of it but I've written a little demo to show what I encountered.
Basically this code spawns a cube at (0.0, 0.0, 0.0) and then tries to draw 9 lines... four lines pointing up the Y axis, one line pointing up the X axis and four lines pointing up the Z axis.
This is what I get
with this code
// vertical lines
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(0.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(1.0, 0.0, 0.0), Vec3::new(1.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(2.0, 0.0, 0.0), Vec3::new(2.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(3.0, 0.0, 0.0), Vec3::new(3.0, 5.0, 0.0), 0.01, Color::RED);
// one line going up the x axis
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(5.0, 0.0, 0.0), 0.01, Color::RED);
// four lines starting from different points on the
// x axis going from same x value but toward 5.0 z value
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(0.0, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(1.0, 0.0, 0.0), Vec3::new(1.0, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(2.0, 0.0, 0.0), Vec3::new(2.1, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(3.0, 0.0, 0.0), Vec3::new(3.1, 0.0, 5.0), 0.01, Color::GREEN);
Note: the last two lines I could get to work by doing x values of 2.0 -> 2.1 and 3.0 -> 3.1. If I leave the X value the same (like in the first two green lines) then it doesn't show. And, I don't seem to get this issue with the other lines (the vertical lines and the X-axis line render fine despite only having the difference in one axis between start and end points)
If I change that part to this
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(0.1, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(1.0, 0.0, 0.0), Vec3::new(1.1, 0.0, 5.0), 0.01, Color::GREEN);
then I get all four green lines
Here's the full code
use bevy::prelude::*;
use bevy_prototype_debug_lines::{ DebugLinesPlugin, DebugLines };
fn main() {
App::build()
.insert_resource(Msaa { samples: 4 })
.add_plugins(DefaultPlugins)
.add_plugin(DebugLinesPlugin)
.add_startup_system(setup.system())
.add_system(demo.system())
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
) {
let mut transform = Transform::from_translation(Vec3::new(-2.4399414, 3.9506745, 5.9317107));
transform.rotate(Quat::from_xyzw(-0.26216018, -0.36458296, -0.10775752, 0.88698345));
commands.spawn_bundle(PerspectiveCameraBundle {
transform,
..Default::default()
});
commands.spawn_bundle(PbrBundle {
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 0.0)),
mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
..Default::default()
});
}
fn demo(mut lines: ResMut<DebugLines>) {
// vertical lines
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(0.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(1.0, 0.0, 0.0), Vec3::new(1.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(2.0, 0.0, 0.0), Vec3::new(2.0, 5.0, 0.0), 0.01, Color::RED);
lines.line_colored(Vec3::new(3.0, 0.0, 0.0), Vec3::new(3.0, 5.0, 0.0), 0.01, Color::RED);
// one line going up the x axis
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(5.0, 0.0, 0.0), 0.01, Color::RED);
// four lines starting from different points on the
// x axis going from same x value but toward 5.0 z value
lines.line_colored(Vec3::new(0.0, 0.0, 0.0), Vec3::new(0.0, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(1.0, 0.0, 0.0), Vec3::new(1.0, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(2.0, 0.0, 0.0), Vec3::new(2.1, 0.0, 5.0), 0.01, Color::GREEN);
lines.line_colored(Vec3::new(3.0, 0.0, 0.0), Vec3::new(3.1, 0.0, 5.0), 0.01, Color::GREEN);
}