UI

UiBox

Invisible UI container.

Base UI node. Positions and sizes resolve against parent UI rect or virtual viewport at root.

Source: perro_source/core/perro_ui/src/lib.rs

Fields

rectmin_sizemax_sizescalerotationvisibleinput_enabled
pub struct UiBox {    pub rect: UiRect,    pub min_size: Vector2,    pub max_size: Vector2,    pub scale: Vector2,    pub rotation: f32,}

Scene template

[node_instance]tags = ["runtime", "demo"]parent = @rootscript = "res://script.rs"script_vars = { speed = 4.0, health = 100 }   [UiBox]    rect = (16, 16, 160, 48)    min_size = (120, 40)    max_size = (120, 40)    scale = (1, 1)    rotation = 0.0  [/UiBox][/node_instance]

Script API

Create

let node_id = create_node!(ctx, UiBox, "Spawned Node", ["enemy", "runtime"], parent_id);

Access / mutate

let value = with_node!(ctx, UiBox, node_id, |node| {    node.rect}); let pair = with_node!(ctx, UiBox, node_id, |node| {    (node.rect, node.min_size)}); with_node_mut!(ctx, UiBox, node_id, |node| {    node.rect = UiRect::new(16.0, 16.0, 160.0, 48.0);});