RAIDER_Survivor/swarm_engine/multi_mesh_instance_3d.gd

24 lines
761 B
GDScript

extends MultiMeshInstance3D
@export var speed = 5;
@export var number: int = 100
func _ready() -> void:
for x in range(number):
for z in range(number):
var index = z * number + x
self.multimesh.set_instance_transform(index, Transform3D(Basis(), Vector3(x, 0.0, -z)))
func _process(delta: float) -> void:
for x in range(number):
for z in range(number):
var index = z * number + x
var current_trans = self.multimesh.get_instance_transform(index)
# Rotation um die Y-Achse (delta für gleichmäßige Drehung)
var rotation_amount = deg_to_rad(10) * delta # 10 Grad pro Sekunde
current_trans.basis = current_trans.basis.rotated(Vector3.UP, rotation_amount)
self.multimesh.set_instance_transform(index, current_trans)