extends Camera3D
# Define la cantidad de desplazamiento en el eje X
var translation_amount = 0.0009  # Ajusta este valor según tus necesidades
# Tiempo de espera para detener el movimiento (en segundos)
var stop_time = 3.0
# Variable para controlar el tiempo transcurrido
var elapsed_time = 0.0
# Llamada cuando el nodo ingresa por primera vez al árbol de escenas
func _ready():
	pass  # No se requiere acción en este ejemplo
# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior
func _process(delta):
	# Actualiza el tiempo transcurrido
	elapsed_time += delta
	# Ejecuta el traslado mientras no haya excedido el tiempo de espera
	if elapsed_time < stop_time:
		# Obtiene la traducción actual de la cámara
		var current_translation = global_transform.origin
		# Crea un nuevo vector de traducción con el movimiento deseado en el eje X
		var new_translation = Vector3(translation_amount, 0.0, 0.0)  # Movimiento en el eje X
		# Combina la traducción actual con el movimiento deseado
		var final_translation = current_translation + new_translation
		# Actualiza la transformación global de la cámara con la nueva traducción
		global_transform.origin = final_translation
	else:
		# Detiene el movimiento después del tiempo de espera
		print("Traslado detenido")  # Puedes reemplazar con la acción deseada
-----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------
UNA CONCLUSION SOBRE EL SCRIPT:
Una conclusion muy facil para jugar mas con este escript cambiar el eje , en lugar de x el z o el y, poner en negativo el var translation_amount = 0.0009  por un var translation_amount = -0.0009    iria en direccion contraria, me ahorro asi animar por "animate" me refiero hacer una pelicula de unos segundos, creo mucho mejor hacer por script todo lo que se pueda hacer.....
----------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
Experimentando  el anterior script y me funciona en otro angulo y con otro tipo de nodo, con un extends RigidBody3D
-------------------------------------------------------------------------------------------------------------------
extends RigidBody3D
 
# Define la cantidad de desplazamiento en el eje X
var translation_amount = -0.0008  # Ajusta este valor según tus necesidades
# Tiempo de espera para detener el movimiento (en segundos)
var stop_time = 11
# Variable para controlar el tiempo transcurrido
var elapsed_time = 0.0
# Llamada cuando el nodo ingresa por primera vez al árbol de escenas
func _ready():
	pass  # No se requiere acción en este ejemplo
# Llamada cada frame. 'delta' es el tiempo transcurrido desde el frame anterior
func _process(delta):
	# Actualiza el tiempo transcurrido
	elapsed_time += delta
	# Ejecuta el traslado mientras no haya excedido el tiempo de espera
	if elapsed_time < stop_time:
		# Obtiene la traducción actual de la cámara
		var current_translation = global_transform.origin
		# Crea un nuevo vector de traducción con el movimiento deseado en el eje X
		var new_translation = Vector3(0.0, 0.0, translation_amount)  # Movimiento en el eje X
		# Combina la traducción actual con el movimiento deseado
		var final_translation = current_translation + new_translation
		# Actualiza la transformación global de la cámara con la nueva traducción
		global_transform.origin = final_translation
	else:
		# Detiene el movimiento después del tiempo de espera
		print("Traslado detenido")  # Puedes reemplazar con la acción deseada