3D

MultiMeshInstance3D

Instanced 3D mesh draw.

Renders many transforms from one mesh/material setup.

Base node: Node3D

Source: perro_source/core/perro_nodes/src/nodes/multi_mesh_instance_3d.rs

Fields

mesh_idsurfacesinstance_scaleinstances
pub struct MultiMeshInstance3D {    pub base: Node3D,    pub mesh_id: MeshID,    pub surfaces: Vec<MeshSurfaceBinding>,    pub instance_scale: f32,    pub instances: Vec<MultiMeshInstance>,}

Scene template

[node_instance]tags = ["runtime", "demo"]parent = @rootscript = "res://script.rs"script_vars = { speed = 4.0, health = 100 }   [MultiMeshInstance3D]    mesh_id = "res://asset.res"    surfaces = []    instance_scale = (1, 1, 1)    instances = []  [/MultiMeshInstance3D][/node_instance]

Script API

Create

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

Access / mutate

let value = with_node!(ctx, MultiMeshInstance3D, node_id, |node| {    node.mesh_id}); let pair = with_node!(ctx, MultiMeshInstance3D, node_id, |node| {    (node.mesh_id, node.surfaces)}); with_node_mut!(ctx, MultiMeshInstance3D, node_id, |node| {    node.mesh_id = MeshID::nil();});