#inspector #component #inspect #hierarchy #entity #speed #derive

amethyst-inspector

amethyst的类似Unity的检查器

3个版本 (破坏性更新)

0.3.0 2019年11月21日
0.2.0 2019年10月6日
0.1.0 2019年9月28日

#1556 in Rust模式

CC0许可证

440KB
1K SLoC

关于

通过amethyst-imgui实现的受Unity启发的实体层次结构和组件编辑器

基本用法

  1. #[derive(Inspect)]在所有你希望在检查器中显示的组件上。例如
// InspectControl is a derive for drawing nested structs
#[derive(Clone, InspectControl)]
pub struct Movement {
	// null_to is what the field is set to on right click
	// speed is how fast the slider can be dragged
	#[inspect(null_to = 10., speed = 0.1)]
	pub speed: f32,
	pub direction: Vector2<f32>,
}

#[derive(Component, Clone, Inspect)]
// #[inspect(no_default)] would disable adding this component
pub struct Player {
	// will only show a dropdown for entities with this component
	// also works for non-option Entity (however that can't be defaulted), U64Marker, Option<U64Marker>
	#[inspect(with_component = "cmp::Location")]
	pub location: Option<Entity>,
	pub movement: Movement,
	// similar to serde(skip) - don't create a control for this field
	#[inspect(skip)]
	pub schlonk: Schlonker,
}
  1. 使用inspector!宏列出你希望在检查器中显示的所有组件。这创建了一个名为Inspector的系统。
inspector![
	Named,
	Transform,
	Rgba,
];
  1. 添加InspectorHierarchyInspector系统。
	.with(amethyst_inspector::InspectorHierarchy::<UserData>::default(), "", &[])
	.with(Inspector, "", &[""])

需要帮助

如果您能提供帮助或建议,请向我发送Discord消息或创建一个问题

  • 在添加组件时创建一个模态或指定属性的其他方式
  • 文档
  • 测试或其他未知内容

screenshot

依赖关系

~68MB
~1M SLoC