You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Godot GDScript中‘类文件中不允许使用自身类名’错误?

解决Godot GDScript“类文件中不允许使用自身类名”错误

错误原因

在Player类的全局作用域里直接用Player.new()创建实例时,类还没完成定义,Godot禁止这种在类自身未加载完成时引用类名实例化的操作,所以触发了错误。

可行解决方法

  • 延迟实例化到生命周期函数:把创建实例的代码放到_ready()函数中,这时类已经完全加载完成,可以正常引用类名:

    class_name Player
    var player: Player # 先声明变量类型
    var player_seed = ""
    
    func _ready():
        player = Player.new() # 在_ready中完成实例化
    
    func _on_Button_pressed():
        var new_seed = int($ColorRect/LineEdit.text)
        player.player_seed = new_seed
    
  • 用self替代类名实例化:如果是要创建当前类的实例,也可以用self.new()代替Player.new(),同样建议放到_ready()中执行:

    class_name Player
    var player: Player
    var player_seed = ""
    
    func _ready():
        player = self.new()
    
    func _on_Button_pressed():
        var new_seed = int($ColorRect/LineEdit.text)
        player.player_seed = new_seed
    
  • 无需额外实例化的优化方案:如果你的需求只是修改当前对象的player_seed,根本不需要创建新的Player实例,直接修改当前对象的属性即可:

    class_name Player
    var player_seed = ""
    
    func _on_Button_pressed():
        var new_seed = int($ColorRect/LineEdit.text)
        player_seed = new_seed # 等价于 self.player_seed = new_seed
    

内容的提问来源于stack exchange,提问作者Inchy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:50:36