Skip to main content
Minor fix
Source Link
liggiorgio
  • 5.5k
  • 6
  • 27
  • 38

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the following errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

ADDENDUM: It's starting to look like this might be a design oversight. I'm looking into whether it could be worked into a future edition of the editor.

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

ADDENDUM: It's starting to look like this might be a design oversight. I'm looking into whether it could be worked into a future edition of the editor.

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the following errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

ADDENDUM: It's starting to look like this might be a design oversight. I'm looking into whether it could be worked into a future edition of the editor.

added 155 characters in body
Source Link
Michael Macha
  • 754
  • 1
  • 6
  • 19

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

ADDENDUM: It's starting to look like this might be a design oversight. I'm looking into whether it could be worked into a future edition of the editor.

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?

ADDENDUM: It's starting to look like this might be a design oversight. I'm looking into whether it could be worked into a future edition of the editor.

Source Link
Michael Macha
  • 754
  • 1
  • 6
  • 19

How can I connect a signal, with specific signal arguments, to an incompatible function in Godot 4 with the UI?

To clarify, I'm attempting to trigger an event on the entry of the player into an Area3D. This event is handled by an AnimationPlayer. To do this, all I need to do is call play(&"platform path"). I would like to do this without adding another script.

body_entered already has one parameter, body, which is a Node3D; I need to remove that parameter (since it isn't relevant to me anyway) and bind the call with a StringName of &"platform path".

It looks like this should be possible, as we have "Unbind Signal Arguments" and "Extra Call Arguments". However, when I increase the number for "Unbind Signal Arguments", the extra call arguments are grayed out. Running it instead gives me the errors:

E 0:00:06:0669   get_animation: Animation not found: "".
  <C++ Error>    Condition "!animation_set.has(p_name)" is true. Returning: Ref<Animation>()
  <C++ Source>   scene/animation/animation_mixer.cpp:392 @ get_animation()
E 0:00:06:0669   _play: Animation not found: .
  <C++ Error>    Condition "!animation_set.has(name)" is true.
  <C++ Source>   scene/animation/animation_player.cpp:396 @ _play()

This implies that an empty string is being passed in instead of &"platform path".

What am I doing wrong here?