Unity URP覆写OnCameraSetup方法报CS0115找不到可覆写方法求助
解决方案
这个报错是URP版本API不兼容导致的:你参考的教程使用的是2021及更早版本的URP(版本号≤12.x),这类版本的ScriptableRenderPass类的OnCameraSetup虚方法签名包含CommandBuffer参数;而你当前使用的是2022.x及以上的URP,官方已经修改了该方法的签名,移除了第一个CommandBuffer参数,所以你按旧版写法写的override方法找不到对应的父类虚方法,就会报CS0115错误。
你可以任选以下两种方案解决:
- 方案1:适配当前高版本URP的API
把报错行的方法签名修改为:
如果原方法内部用到了之前的public override void OnCameraSetup(ref RenderingData renderingData)cmd参数,把对应逻辑移动到OnExecute方法中,使用OnExecute传入的CommandBuffer处理即可。 - 方案2:匹配教程的Unity版本
将你的Unity版本降级到2021.x系列,对应的URP版本号为12.x,就能完全兼容教程的旧版API写法。
额外建议:如果后续遇到其他类似的重写报错,可以右键你的Pass继承的父类ScriptableRenderPass,选择「转到定义」查看父类公开的虚方法签名,完全照着父类的签名写就能避免这类错误。
内容的提问来源于stack exchange,提问作者FallingInForward
相关产品推荐
相关产品推荐

