日常记录Unity3D 中的 Surface Shader 是不支持在 Pass中使用的

Posted 理性、感性

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日常记录Unity3D 中的 Surface Shader 是不支持在 Pass中使用的相关的知识,希望对你有一定的参考价值。

如题

搞了好久,一直报错:

Shader error in ‘custom_outline_effect‘: Parse error: syntax error, unexpected TOK_PASS, expecting TOK_SETTEXTURE or ‘}‘ at line 69

只要是把 #pragma surface ... 写在 Pass中就算出错

 1         Pass { // Pass 中无法使用 surface 渲染模式,也就是说surface不支持在多Pass中使用
 2                 CGPROGRAM
 3                     #pragma surface surf Lambert
 4 
 5                     sampler2D _MainTex;
 6 
 7                     struct Input {
 8                         float2 uv_MainTex;
 9                     };
10 
11                     void surf (Input IN, inout SurfaceOutput o) {
12                         half4 c = tex2D (_MainTex, IN.uv_MainTex);
13                         o.Albedo = c.rgb;
14                         o.Alpha = c.a;
15                     }
16                  ENDCG
17         }

 

以上是关于日常记录Unity3D 中的 Surface Shader 是不支持在 Pass中使用的的主要内容,如果未能解决你的问题,请参考以下文章

日常记录unity3d 获取手柄轴的输入

Unity3D日常BUG记录Unity打包运行出现:PlatformNotSupportedException该平台不支持此操作的解决记录

Unity3D日常BUG记录Unity打包运行出现:PlatformNotSupportedException该平台不支持此操作的解决记录

浅墨Unity3D Shader编程之六 暗黑城堡篇: 表面着色器(Surface Shader)的写法

Unity3d - RPG项目学习笔记

Unity3D日常开发Unity3D中实现箭头指向目标点的效果