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

Godot 4.4.1 C#重写_Ready()函数报错‘no suitable method found to override’求助

解决Godot C#中“no suitable method found to override”错误(_Ready()方法相关)

错误原因

你的Box类没有继承任何Godot节点基类(比如Node、Node3D、MeshInstance3D等)。_Ready()是Godot节点类提供的虚方法,只有当你的类继承了这类基类时,才能用override关键字重写它。哪怕你注释掉_Ready()的函数体,只要保留override关键字,编译器找不到对应的基类方法,就会触发这个错误。

解决方法

  • 让Box类继承一个符合你需求的Godot节点类。比如如果这个类要作为3D场景中的节点使用,最基础的可以继承Node3D;如果你的Box本身是网格实例,也可以直接继承MeshInstance3D。
  • 调整类的声明,添加继承关系。
  • 如果不需要_Ready()方法,可以直接删除带override的该函数;如果需要保留,继承基类后即可正常重写。

修正后的代码示例

using Godot;
using System;

// 这里继承Node3D,你可以根据实际需求换成其他节点类
public class Box : Node3D
{
    public enum BoxType
    {
        //HURT_BOX,
        //BLOCK_BOX
    }

    public bool Enabled { get; set; }
    public int Damage { get; set; }
    public Keyframe[] Keyframes { get; set; }

    private MeshInstance3D _mesh;
    private Fighter Fighter;

    // 现在继承了Node3D,就可以正常override _Ready()了
    public override void _Ready() {}
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 15:03:11