-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The custom Mainloop inherited from SceneTree does not work properly #70764
Comments
Seems like custom main loop does not take script classes into account. It instantiates the base type, but does not attach the script. |
Ah right, I forgot about the part where MainLoop works... |
The main loop is being set correctly, just too late (both the main loop and its custom script). I've opened PR with a fix. Before that as a workaround you could e.g. await for a single frame like: extends Node2D
func _ready() -> void:
#Engine.get_main_loop().say_hello() # Fails.
await get_tree().process_frame
Engine.get_main_loop().say_hello() # Works. |
I also found this issue in 3.5.1. @kleonc |
@Hapenia-Lans I've already marked #70771 for cherry-picking to 3.x/3.5 (meaning when it will be merged it should be backported) so I guess I've checked that as well back then (now I don't remember:smile:). |
Godot version
4.0 beta 10, also 3.5.1
System information
Windows 11
Issue description
Creating a Mainloop inherited from SceneTree makes sense when you want to add a few features to SceneTree instead of starting from scratch. Unfortunately, this doesn't work as well, as if its type is erased.
But inheriting from Mainloop directly (in the example) can work properly.
Steps to reproduce
MyGDScriptMainLoop
.application/run/main_loop_type
toMyGDScriptMainLoop
.Engine.get_main_loop().say_hello()
.Then you will see:
And also I found that
Engine.get_main_loop() is MyGDScriptMainLoop
isfalse
.Using GDExtension to do this also failed. But since I'm using godot-rust, I'm not sure if this problem exists with godot-cpp.
Minimal reproduction project
bug.zip
The text was updated successfully, but these errors were encountered: