Godot Version
Godot 4.0.4 stable
Question
I am trying to save the text value of a textedit node to a string variable with the get_text() function. This is where the weirdness starts, in a global function called by another script this function returns null, but in an _process() loop on one frame it returns the correct text and the other null again. Here is the code for the textedit node:
extends TextEdit
func _save():
@warning_ignore("unused_variable")
var check2 = get_text()
print("name" + check2)
text = ""
func _process(delta):
print(get_text())
Ignore the text = ""
line i doubt that’s the problem
Please note I am new to Godot (I’ve been using it on and off for like 2 months) the solution may be obvious to you, but anyways thanks for your help!
Hi,
Tested your code and don’ get any nil value.
The problem seem to be somewhere else in your project.
1 Like
You are right, no idea what’s happening in my current project
it could be just your global function/script calls _save() before this text edit node is ready (also known as it’s instantiated in a scene tree).
try add await function like
await get_tree().physics_frame()
before the var check2= get_text()
I’m getting this error:
Parser Error: Name "physics_frame" called as a function but is a "Signal".
but i don’t think that’s the problem, even in a clear scene with only the textedit on the tree it still does its weird stuff
sorry forgot to remove the ()
await get_tree().physics_frame
Update for anyone viewing this post in the future, it turn out there was some weird tomfoolery going on with the script being autoloaded, so to anyone having the same problem just don’t autoload it.