Skip to content
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

CSGPolygon following a path throws errors if adding or removing points in path #30229

Closed
Plopsiskopsis opened this issue Jul 1, 2019 · 4 comments · Fixed by #48232
Closed
Milestone

Comments

@Plopsiskopsis
Copy link

Godot 3.1

If you make a CSGPolygon follow Path and add points to the path after _ready() function it keeps throwing the following errors.
Signal 'tree_exited' is already connected to given method '_path_exited' in that object.
core/object.cpp:1488 @ connect()
and
Signal 'curve_changed' is already connected to given method '_path_changed' in that object.
core/object.cpp:1488 @ connect()

Is there any reason for the signal to reconnect on path update?

To reproduce you can create the following scene:
image

@tiax615
Copy link

tiax615 commented Aug 19, 2019

I had the same problem.
No matter whether you use scripte or not. As long as you use follow path, those errors show.

@kb173
Copy link

kb173 commented Sep 9, 2019

Is there any possible workaround for this? Our logs are full of these errors.

It seems to me that set_point_position() causes this as well.

@jitspoe
Copy link
Contributor

jitspoe commented Jan 16, 2020

Getting similar errors when removing a scene tree that has CSG polygons:

_make_dirty() is called from NOTIFICATION_EXIT_TREE, which then tries to connect signals, use things that have been removed from the tree, etc. Lots of errors:

E 0:00:08:0760   Signal 'tree_exited' is already connected to given method '_path_exited' in that object.
  <C Source>     core\object.cpp:1474 @ Object::connect()
E 0:00:08:0763   Signal 'curve_changed' is already connected to given method '_path_changed' in that object.
  <C Source>     core\object.cpp:1474 @ Object::connect()
E 0:00:08:0767   Condition ' !is_inside_tree() ' is true. returned: Transform()
  <C Source>     scene\3d\spatial.cpp:266 @ Spatial::get_global_transform()
E 0:00:08:0770   Condition ' !is_inside_tree() ' is true. returned: Transform()
  <C Source>     scene\3d\spatial.cpp:266 @ Spatial::get_global_transform()

Not sure why _make_dirty() is called when it's being removed from the tree. Was tempted tot remove that, but after seeing this issue, there may be some more fundamental issue with the behavior and/or error reporting here.

@ngreve
Copy link

ngreve commented Apr 24, 2021

Just want to push this issue a bit more.

I just encountered this bug, too. Right now, for me this is especially problematic, because I try to use Path with CSGPolygon to implement something similar to a rope, to connect two objects.

So, for developing reasons my Path is running in tool mode, and curve.set_point_position(...) is called in every physics frame.
Unfortunately the resulting amount of error message printing slows down Godot immensely.

HaSa1002 added a commit to HaSa1002/godot that referenced this issue Apr 27, 2021
akien-mga pushed a commit to akien-mga/godot that referenced this issue Apr 29, 2021
akien-mga pushed a commit that referenced this issue Apr 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
7 participants