您当前的位置: 首页 >  Jave.Lin unity

Unity Shader - 搬砖日志 - Built-in RP Shader 升级到 URP Shader 出现 redefinition of _Time 错误

Jave.Lin 发布时间:2021-10-29 15:16:23 ,浏览量:5

之前我升级部分 Built-in RP Shader 直接新建 shader,调整使用每一个 Shader 中对应的内容

都是基本上很少遇到有 redefinition of _Time 的 shader 编译错误问题

但是啊,我在对复杂一些的 Custom Shader 升级时,没使用批量 Replace,很容易漏掉 CGINCLUDE, CGPROGRAM 的替换 HLSL 的方式

然后编译提示:redefinition of _Time,然后就一脸懵了

去搜索还好发现有人遇到同样问题,但是都是问题集合里面的其中一条:

在引入URP的库后,CGPROGRAM一定要改成HLSLPROGRAM,否则会报类似下面的错误。原因是:CGPROGRAM默认引入了一些builtin的头文件(HLSLSupport.cginc和UnityShaderVariables.cginc),其中定义了_Time等变量,在使用URP框架后,与URP自己定义的产生重定义

所以我现在就单独写一个针对真个问题的解决方法博客,关键字也是单一,便于搜索:

  • CGINCLUDEENDCG -> HLSLINCLUDE ... ENDHLSL
  • CGPROGRAMENDCG -> HLSLPROGRAM ... ENDHLSL
References
  • 从 Builtin 管线升级到 URP - 搜索 _Time 就可以快速定位
关注
打赏
1688896170
查看更多评论

Jave.Lin

暂无认证

  • 5浏览

    0关注

    546博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.2321s