没有合适的方法来覆盖 - Unity

时间:2017-05-10 19:51:49

标签: c# unity3d

我正在尝试使用Unity的一些东西并且在这里总是“没有合适的方法来覆盖”时会遇到很多这样的错误。例如:

  

资产/标准资产/效果/ ImageEffects / Scripts / Antialiasing.cs(86,30):错误CS0115:`UnityStandardAssets.ImageEffects.Antialiasing.CheckResources()'被标记为覆盖但没有找到合适的方法来覆盖。

看起来这个错误是微不足道的,但我不知道C#,所以不知道这个是什么。你能在这个例子中展示一下,如何解决这个问题?谢谢!

    public override bool CheckResources()
    {
        CheckSupport(false);

        materialFXAAPreset2 = CreateMaterial(shaderFXAAPreset2, materialFXAAPreset2);
        materialFXAAPreset3 = CreateMaterial(shaderFXAAPreset3, materialFXAAPreset3);
        materialFXAAII = CreateMaterial(shaderFXAAII, materialFXAAII);
        materialFXAAIII = CreateMaterial(shaderFXAAIII, materialFXAAIII);
        nfaa = CreateMaterial(nfaaShader, nfaa);
        ssaa = CreateMaterial(ssaaShader, ssaa);
        dlaa = CreateMaterial(dlaaShader, dlaa);

        if (!ssaaShader.isSupported)
        {
            NotSupported();
            ReportAutoDisable();
        }

        return isSupported;
    }

2 个答案:

答案 0 :(得分:0)

您提供的代码示例中的方法标记为override。这意味着编译器将采用此方法所在的类,并查看它继承的类以查找要覆盖的类。

请参阅文档here

如果您确定此代码是正确的,那么从方法定义中删除override关键字应该可以消除错误。

如果您还没有自己编写此代码及其部分Unity文件,那么您可能会遗漏一些依赖项(请参阅:包含该类的文件以及您应该覆盖的方法)。

答案 1 :(得分:-2)

我发现的唯一解决方法是删除整个公共类BloomAndFlares : PostEffectsBase。其他所有东西给我一个错误。