Open aaronfranke opened 1 month ago
It isn't registered as a singleton, and isn't available in scripting as such, see scene/register_scene_types.cpp
SceneTree is accessed in GDScript via Engine.get_main_loop()
.
Yeah, it's a workaround, but you can get the scene tree like this:
SceneTree *scene_tree = Object::cast_to<SceneTree>(Engine::get_singleton()->get_main_loop());
We should probably generate a SceneTree::get_singleton()
function that does this in godot-cpp, to make code compatible with modules.
Godot version
Godot 4.3-stable
godot-cpp version
master b93d6e887e98d5f55e77883950032da9675c405d
System information
macOS 14.6.1 arm64
Issue description
This code snippet compiles in engine code, but does not compile in godot-cpp:
My use case is that I'm trying to connect to signals on SceneTree such as
physics_frame
.It seems that most other singletons have this method in godot-cpp, it's just SceneTree where it's missing:
Steps to reproduce
Add
SceneTree *scene_tree = SceneTree::get_singleton();
to a GDExtension godot-cpp project and try to compile it.Minimal reproduction project
I'm not gonna bother including a minimal reproduction project since it's one line of code.