, the C # script controls the shader color.
1 Public classControlcolor:monobehaviour2 {3 PublicColor color =NewColor (1,1,1,1);4 PublicMaterial Mat;5 Public voidChangeColor ()6 {7Mat. Setvector ("_diffuse", color);8 }9}
1[Customeditor (typeof(Controlcolor))]2 Public classEdit_controlcolor:editor {3Controlcolor SCR;//Script Ontology4 Serializedobject serobj;5 serializedproperty color;6 Serializedproperty Mat;7 8 Public voidonenable ()9 {TenSCR =(Controlcolor) target; OneSerobj =NewSerializedobject (target); Acolor = Serobj.findproperty ("Color"); -Mat = Serobj.findproperty ("Mat"); - } the Public Override voidOninspectorgui () - { - serobj.update (); -Editorguilayout.propertyfield (Color,NewGuicontent ("Color")); +Editorguilayout.propertyfield (Mat,NewGuicontent ("Mat")); - serobj.applymodifiedproperties (); + SCR. ChangeColor (); A } at}
1 //Upgrade note:replaced ' Mul (unity_matrix_mvp,*) ' with ' unityobjecttoclippos (*) '2 3Shader"Custom/color"4 {5 Properties6 {7_diffuse ("Diffuse", Color) = (1,1,1,1)8 }9 SubshaderTen { OneTags {"Rendertype"="Opaque" } ALod - - - Pass the { - Cgprogram - #pragmaVertex vert - #pragmaFragment Frag + -#include"Unitycg.cginc" + float4 _diffuse; A at structAppData - { - float4 vertex:position; - float2 uv:texcoord0; - }; - in structv2f - { to float4 pos:sv_position; + }; - the v2f Vert (AppData v) * { $ v2f o;Panax Notoginsengo.pos=Unityobjecttoclippos (V.vertex); - returno; the } + A fixed4 Frag (v2f i): Sv_target the { + return_diffuse; - } $ ENDCG $ } - } -}
C # Script Control shader