UnityShader常见报错汇总

UnityShader报错提示,大部分根据提示就能找到问题,但是有时候提示不太科学,根据提示找疯都找不到,主要是以下原因:

  • 提示位置不对,不如A行出错,提示位置不在A行。
  • 提示的位置就是错误的,但是你就看不出来那里有错,于是就把这行当成没有错误,去找其它地方有没有错......

语法可能出现错误的地方

  • 行尾';'
    • Properties里面定义的变量语句末尾出现了';'
      _Color ("Color Tint", Color) = (1, 1, 1, 1)
    • CG代码段里面结构体定义尾部必须有';'
        struct a2v
        {
          float4 vertex: POSITION;
        };
  • 将有返回值的函数作为参数使用(这个按理应该支持的,但是目前就是不支持,这样做Shader会提示报错,但是shader仍然能够正常运行)

    SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
      fixed temp = tempFun(param1,tempFunWithReturnValue(),param2,...);
  • 成对出现元素
    • {}
    • 宏判断需要有始有终
          #ifdef XXXXX
    
          #endif

    变量/函数名称不一致

  • 当名称需要修改时,要将所有涉及的地方一并修改

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄