u3d_shader_surface_shader_2

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

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

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

  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"
  }

加载了纹理: 

 

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

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

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

改变自己
原文地址:https://www.cnblogs.com/sun-shadow/p/4759428.html