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}]