http://docs.unity3d.com/Manual/SL-SurfaceShaderExamples.html

http://my.oschina.net/u/138823/blog/181131

此文入门surface shader;一个红色方块;

u3d_shader_surface_shader_2-LMLPHP

  Shader "Example/Diffuse Texture" {
Properties {
_MainTex ("Texture", 2D) = "red" {} //从"Texture"得知加载一个"red"纹理,纹理名定义为_MainTex,底下调用需要和此名相同
}
SubShader {
Tags { "RenderType" = "Opaque" } //非透明
CGPROGRAM
#pragma surface surf Lambert
struct Input {
float2 uv_MainTex;
};
sampler2D _MainTex;//与前面加载的纹理名 相同才可
void surf (Input IN, inout SurfaceOutput o) {
o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
}
ENDCG
}
Fallback "Diffuse"
}

加载了纹理: 

 u3d_shader_surface_shader_2-LMLPHP

我去..目测在surface中_MainTex此名字不能随便修改。

unity纹理拖到模型上会自动生成mat材质文件的...

今天发现_MainTex名字可以自己定义的,但要重置u3d编辑器对应的纹理图;脚本里的uv坐标和变量的定义;

05-11 10:57