Bootstrap

Unity Shader入门精要之照抄代码在Unity2018中遇到的问题

        这不是纠正女神的代码,而是自己的一点总结,因为软件升级而引起代码替换问题,如果有幸别人看到,有问题与建议欢迎留言。

        因为本人是游戏美术,不是程序的同学,没程序基础,所以照抄代码遇到的问题都在这样总结一下。

        下面这段代码就是完全照抄然后Unity自动转换导致计算错误的代码:

// 升级说明:将 'mul(UNITY_MATRIX_MVP,*)' 替换为 'UnityObjectToClipPos(*)'

Shader "ShaderRMJY/RMJY05_UnlitShader01"
{

	SubShader{
		Pass {
			CGPROGRAM

			#pragma vertex vert
			#pragma fragment frag

			float4 vert(float4 v: POSITION): SV_POSITION {
					return UnityObjectToClipPos(v.vertex);
				}

			fixed4 frag() : SV_Target {
					return fixed4(1.0, 1.0, 1.0, 1.0);
				}

				ENDCG
			}
	}
}

手动修改后的代码如下:

// 升级说明:将 'mul(UNITY_MATRIX_MVP,*)' 替换为 'UnityObjectToClipPos(*)'

Shader "ShaderRMJY/RMJY05_UnlitShader01"
{

	SubShader{
		Pass {
			CGPROGRAM

			#pragma vertex vert
			#pragma fragment frag

			float4 vert(float4 v: POSITION): SV_POSITION {
					return UnityObjectToClipPos(v);
				}

			fixed4 frag() : SV_Target {
					return fixed4(1.0, 1.0, 1.0, 1.0);
				}

				ENDCG
			}
	}
}

可以看到自动转换的会多乘以一个vertex,只要把vertex去掉,就能正常显示。

后期有问题我在继续更新在这里。

;