Mostrando entradas con la etiqueta Un MeshInstance3D gira con alternancias sobre si mismo. Mostrar todas las entradas
Mostrando entradas con la etiqueta Un MeshInstance3D gira con alternancias sobre si mismo. Mostrar todas las entradas

domingo, 13 de julio de 2025

Un MeshInstance3D gira con alternancias sobre si mismo, GDScript para Godot 4.4;

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