在Godot的GDScript中自定义_to_string时遇栈溢出问题求助
解决Godot GDScript重写
_to_string()导致栈溢出的问题 问题核心是:重写_to_string()时,调用super.to_string()或者(self as Object).to_string()依然会触发你自己重写的_to_string()方法——GDScript的方法调用是动态绑定的,这直接造成无限递归,最终引发栈溢出。
要获取类的默认字符串表示,需要直接调用Object类的原生_to_string方法并传入当前实例,以此绕过重写逻辑。修改后的代码如下:
func _to_string(): var my_string = Object._to_string(self) my_string += " -> GREEN" if is_green else " -> RED" return my_string
这样就能在默认字符串基础上追加自定义信息,同时避免递归问题。
内容的提问来源于stack exchange,提问作者Jens D
相关产品推荐
相关产品推荐

