0
\$\begingroup\$

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.

\$\endgroup\$
1
  • \$\begingroup\$ I know for a fact that it accepts StringName by documentation and previous use in code, and GDScript is an interpreted language as such. I don't believe that that's the case. \$\endgroup\$ Commented Nov 5 at 4:45

0

You must log in to answer this question.

Browse other questions tagged .