I have been following this tutorial on creating a Character Movement System where I ran into a problem related to signals. I was trying to have Spikes Node2D with an Area2D child send a signal when a body entered its CollisionShape2D. I was successfully able to connect the signal to the Spikes Node2D and I Ctrl + C the receiver method then added it to Spike Script.
private void _on_area_2d_body_entered()
{
GD.Print("Body has entered");
}
On VS, it says that there is 1 reference to the receiver method, though I cant seem to access the code where it is called. That being said, whenever my Player CharacterBody2D passes through the Spikes' Sprite2D, which is perfectly aligned with the CollisionShape2D, I get the following debug error:
emit_signalp: Error calling from signal 'body_entered' to callable:
'Node2D(SpikeTrap.cs)::_on_area_2d_body_entered': Method not found.
I followed the tutorial, and the guy added object body as parameters in the method. When I did the same, I got no references to my method. I have no clue what is going wrong here.
I watched that part in the video multiple times, and I searched through google and the Godot documentation to no avail.
In the tutorial, the guy passes in a parameter
object body, which does not work anymore. You have to pass in specific nodes, likeNode2DorCharacterBody2D. Like so: