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();});