3D
MeshInstance3D
Renderable 3D mesh.
Uses mesh id plus per-surface material bindings. Optional skeleton NodeID drives skinned meshes.
Base node: Node3D
Source: perro_source/core/perro_nodes/src/nodes/mesh_instance_3d.rs
Fields
mesh_idsurfacesskeletonvisible
pub struct MeshInstance3D { pub base: Node3D, pub mesh_id: MeshID, pub surfaces: Vec<MeshSurfaceBinding>, pub skeleton: NodeID,}Scene template
[node_instance]tags = ["runtime", "demo"]parent = @rootscript = "res://script.rs"script_vars = { speed = 4.0, health = 100 } [MeshInstance3D] mesh_id = "res://asset.res" surfaces = [] skeleton = 0 visible = true [/MeshInstance3D][/node_instance]Script API
Create
let node_id = create_node!(ctx, MeshInstance3D, "Spawned Node", ["enemy", "runtime"], parent_id);Access / mutate
let value = with_node!(ctx, MeshInstance3D, node_id, |node| { node.mesh_id}); let pair = with_node!(ctx, MeshInstance3D, node_id, |node| { (node.mesh_id, node.surfaces)}); with_node_mut!(ctx, MeshInstance3D, node_id, |node| { node.mesh_id = MeshID::nil();});