extends MeshInstance3D
@export var rotation_speed_min := 0.5
@export var rotation_speed_max := 2.0
@export var rotation_change_interval := 2.0
var current_rotation_speed := 0.0
var time_since_last_change := 0.0
var current_axis := Vector3.ZERO
func _ready():
_set_new_rotation_parameters()
func _process(delta):
time_since_last_change += delta
if time_since_last_change >= rotation_change_interval:
_set_new_rotation_parameters()
time_since_last_change = 0.0
# Apply rotation
rotate_object_local(current_axis, current_rotation_speed * delta)
func _set_new_rotation_parameters():
# Randomize rotation speed
current_rotation_speed = randf_range(rotation_speed_min, rotation_speed_max)
# Randomize rotation axis
var random_x = randf_range(-1.0, 1.0)
var random_y = randf_range(-1.0, 1.0)
var random_z = randf_range(-1.0, 1.0)
current_axis = Vector3(random_x, random_y, random_z).normalized()