![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | JulioYagami |
There is a way?
![]() |
Attention | Topic was automatically imported from the old Question2Answer platform. |
![]() |
Asked By | JulioYagami |
There is a way?
![]() |
Reply From: | Zylann |
You can’t get the caller of a function, there is no point doing that. If you really need to, just pass it as an argument, like so:
First node:
node.the_function(self)
Second node:
func the_function(caller):
print("Called by ", caller)
![]() |
Reply From: | AsP |
If you don’t actually need the node, but only a trace to the caller, you can also use get_stack()
to get an array of the whole stack, index 0 being the innermost function. From the docs:
Array
get_stack( )
Returns an array of dictionaries representing the current call stack.
func _ready(): foo() func foo(): bar() func bar(): print(get_stack())
would print
[{function:bar, line:12, source:res://script.gd}, {function:foo, line:9, source:res://script.gd}, {function:_ready, line:6, source:res://script.gd}]
There’s no point? The point is so i dont have to pass it as the first argument every single time.