-
-
Notifications
You must be signed in to change notification settings - Fork 21k
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
Hot Reload broken in Godot 4.3 beta 1 #92695
Comments
Bisecting points to #92350 as the culprit: |
Ok, i did some experiments here and what is happening: First, hot reloading doesn't entire fails to work, if you change the properties in the inspector they will apply in game as expected. but if you drag and drop, rotate, change visibility, etc, outside the inspector, the hot reload fails unknown_2024.06.02-20.14.mp4Before #92350 godot/core/object/undo_redo.cpp Lines 162 to 166 in 83b916b
But thats made #90430 happens because lambdas raise a error if godot/core/object/undo_redo.cpp Lines 162 to 167 in 705b7a0
And as you can see in the video above, all the callables return true for That callables hot reload using the static cast result (the callables from editing properties from inspector): Callable: EditorInspector::emit_signal Callable: EditorInspector::_edit_request_change That callables fail to hot reload using the static cast result (the callables from drag and drop, click the eye buton in scene tree, etc) Callable: Node2D::set_visible Callable: ColorRect::_edit_set_state So the options to solve this problem is: 1: Downgrade the error emited by If none of the above can be done, i have a totally not workaround solution:
Probably this has another (better) solutions but that is what my limited knowledge allowed me to get, at least to give some direction of what is happening |
Hello. First of all, I would like to apologize that my fix led to such a serious problem 😥 I've been researching the problem for a while and have come to some conclusions. The problem really is my fix. Debugger uses the method names from If we call if (p_callable.is_custom()) {
const CallableCustomBind *bind = dynamic_cast<CallableCustomBind *>(p_callable.get_custom());
// Check if CallableCustom is bind.
if (bind != nullptr) {
do_op.name = bind->get_method();
} else {
do_op.name = static_cast<String>(p_callable);
}
} else {
do_op.name = p_callable.get_method();
} |
What if we add something like |
Also I think the godot/core/variant/callable.cpp Lines 440 to 442 in 83b916b
|
I also think it would be nice to add an |
This reverts commit e88095e. Fixes godotengine#92695.
This reverts commit e88095e. Fixes godotengine#92695.
This reverts commit e88095e. Fixes godotengine#92695.
This reverts commit e88095e. Fixes godotengine#92695.
Tested versions
System information
Tested and reproduced on Windows 11 and Android 14
Issue description
Hot reload no longer works when running a project with
Synchronize scene changes
andSynchronize script changes
enabled.Steps to reproduce
Synchronize scene changes
andSynchronize script changes
Minimal reproduction project (MRP)
N/A: affects all projects
The text was updated successfully, but these errors were encountered: