extends Node
# --- ¡NUEVAS CASILLAS PARA EL INSPECTOR! ---
# Definimos las opciones que puedes elegir en los menús desplegables
enum OpcionesCamara { JAPONES_1, GRUA, JAPONES_2, LADRON }
@export_group("Orden de las Cámaras")
@export var paso_1: OpcionesCamara = OpcionesCamara.JAPONES_1
@export var paso_2: OpcionesCamara = OpcionesCamara.GRUA
@export var paso_3: OpcionesCamara = OpcionesCamara.JAPONES_2
@export var paso_final: OpcionesCamara = OpcionesCamara.LADRON
# Variables internas para guardar los nodos de tus cámaras
var camara_japones : Camera3D
var camara_grua : Camera3D
var camara_japones2 : Camera3D
var camara_ladron : Camera3D
func _ready():
# 1. LOCALIZAMOS LOS NODOS (Tus rutas perfectas)
camara_japones = $"WorldEnvironment/guia de turista 2 limpio NO TOCAR3/Camera3Djapones"
camara_grua = $"WorldEnvironment/GRUACAMARA/Camera3Dgrua"
camara_japones2 = $"WorldEnvironment/guia de turista 2 limpio NO TOCAR2/Camera3Djapones2"
camara_ladron = $CHARACTERBODY2/MeshInstance3D2/Camera3Dladron
# 2. LIMPIEZA INICIAL (Apagamos absolutamente todas al arrancar)
_apagar_todas_las_camaras()
# 3. EJECUTAMOS EL PASO 1
_activar_camara_por_seleccion(paso_1)
print("--- 1. PRIMER ACTO INICIADO ---")
await get_tree().create_timer(5.0).timeout
# 4. EJECUTAMOS EL PASO 2
_apagar_todas_las_camaras()
_activar_camara_por_seleccion(paso_2)
print("--- 2. SEGUNDO ACTO INICIADO ---")
await get_tree().create_timer(10.0).timeout
# 5. EJECUTAMOS EL PASO 3
_apagar_todas_las_camaras()
_activar_camara_por_seleccion(paso_3)
print("--- 3. TERCER ACTO INICIADO ---")
await get_tree().create_timer(15.0).timeout
# 6. EJECUTAMOS EL PASO FINAL
_apagar_todas_las_camaras()
_activar_camara_por_seleccion(paso_final)
print("--- FINAL: CAMBIO COMPLETADO. ¡A JUGAR! ---")
# --- FUNCIONES AUXILIARES (Para que el código quede ordenado y limpio) ---
# Apaga todas las cámaras de golpe antes de encender la siguiente
func _apagar_todas_las_camaras() -> void:
if camara_japones: camara_japones.current = false
if camara_grua: camara_grua.current = false
if camara_japones2: camara_japones2.current = false
if camara_ladron: camara_ladron.current = false
# Se encarga de encender la cámara que hayas elegido en el Inspector
func _activar_camara_por_seleccion(seleccion: OpcionesCamara) -> void:
match seleccion:
OpcionesCamara.JAPONES_1:
if camara_japones: camara_japones.current = true
print("Activada: Camera3Djapones")
OpcionesCamara.GRUA:
if camara_grua: camara_grua.current = true
print("Activada: Camera3Dgrua")
OpcionesCamara.JAPONES_2:
if camara_japones2: camara_japones2.current = true
print("Activada: Camera3Djapones2")
OpcionesCamara.LADRON:
if camara_ladron: camara_ladron.current = true
print("Activada: Camera3Dladron")
---------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------Explicacion: Interesante GDScript para cambiar desde el inspector el orden de aparicion de camaras por tiempo; puedes mantener 1 sola camara todo el tiempo.......
No hay comentarios:
Publicar un comentario