Macro aframe::entity [−][src]
macro_rules! entity {
($(attributes : $(($attr_id : literal, $attr_value : expr)), *) ? $(,) ?
$(components : $(($cmp_id : literal, $cmp_value : expr)), *) ? $(,) ?
$(children : $($child : expr), *) ?) => { ... };
(primitive : $name : expr,
$(attributes : $(($attr_id : literal, $attr_value : expr)), *) ? $(,) ?
$(components : $(($cmp_id : literal, $cmp_value : expr)), *) ? $(,) ?
$(children : $($child : expr), *) ?) => { ... };
}Expand description
Defines the high-level API for describing entities, with one form for describing general entities and another for defining specific primitives. Here’s an example of a general entity definition:
ⓘ
entity!
{
attributes: ("id", "cube-rig"),
components:
("position", component::Position{x: 0.0, y: 2.5, z: -2.0}),
("sound", component!
{
component::Sound,
src: Cow::Borrowed("#ambient_music"),
volume: 0.5
}),
("play-sound-on-event", component!
{
component::PlaySoundOnEvent,
mode: component::PlaySoundOnEventMode::ToggleStop,
event: Cow::Borrowed("click")
}),
("light", component!
{
component::Light,
light_type: component::LightType::Point
{
decay: 1.0,
distance: 50.0,
shadow: component::OptionalLocalShadow::NoCast{},
},
intensity: 0.0
}),
("animation__mouseenter", component!
{
component::Animation,
property: Cow::Borrowed("light.intensity"),
to: Cow::Borrowed("1.0"),
start_events: component::List(Cow::Borrowed(&[Cow::Borrowed("mouseenter")])),
dur: 250
}),
("animation__mouseleave", component!
{
component::Animation,
property: Cow::Borrowed("light.intensity"),
to: Cow::Borrowed("0.0"),
start_events: component::List(Cow::Borrowed(&[Cow::Borrowed("mouseleave")])),
dur: 250
}),
children: entity!
{
primitive: primitive::A_BOX,
attributes: ("id", "my-box"),
components:
}
},and here’s an example of a primitive definition:
ⓘ
entity!
{
// This can also jsut a be a string: "a-box"
primitive: primitive::A_BOX,
attributes: ("id", "my-box"),
components:
}