From 51813bbfe3328be183f426c1c3c9584423072f98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=B4ng=20V=C4=83n=20T=C3=ACnh?= Date: Sun, 15 Jun 2025 02:08:23 +0700 Subject: [PATCH] prevent _ready() hang when using dynamic agent setup Fixes: GH-55 Avoids waiting on already-fired `ready` signals by deferring _initialize() using `call_deferred()`. This ensures all dynamically added nodes and dependencies have completed their own _ready() methods before initialization. --- addons/godot_rl_agents/sync.gd | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/godot_rl_agents/sync.gd b/addons/godot_rl_agents/sync.gd index 20909e9..c2af687 100644 --- a/addons/godot_rl_agents/sync.gd +++ b/addons/godot_rl_agents/sync.gd @@ -60,11 +60,11 @@ var _obs_space_training: Array[Dictionary] = [] # Called when the node enters the scene tree for the first time. func _ready(): - await get_parent().ready - get_tree().set_pause(true) - _initialize() - await get_tree().create_timer(1.0).timeout - get_tree().set_pause(false) + call_deferred("_try_initialize") + +func _try_initialize(): + if not initialized: + _initialize() func _initialize():