I can't do this because the object on which I call set_translation
is implicitly self
:
func _process(delta):
_anim_time += delta
var k = _anim_time
if k < 1.0:
var pos = _normal_pos
pos.y -= (1-k)*(1-k) * 64.0
set_translation(pos)
else:
set_translation(_normal_pos) # here
set_process(false)
My script basically sets the translation of self
in process, then suddenly it becomes freed...
I should have mentionned that my game uses threading. It's not directly related to my script, but if I remove the thread I can't reproduce the error (but the game gets laggy).
Basically the thread performs calculations, notifies the main thread with call_deferred("thread_finished")
, and then in thread_finished
I wait for the thread to finish and spawn the MeshInstance on which my script is.