Shader "Nreal/Instanced-Colored" { Properties { _Color("Color", Color) = (1.0, 1.0, 1.0, 1.0) _ZWrite("ZWrite", Int) = 1.0 // On [Enum(UnityEngine.Rendering.CompareFunction)] _ZTest("ZTest", Int) = 4.0 // LEqual [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Int) = 0.0 // Off } SubShader { Pass { Name "Main" Tags{ "RenderType" = "Opaque" } ZWrite[_ZWrite] ZTest[_ZTest] Cull[_Cull] CGPROGRAM //#if defined(SHADER_API_D3D11) // #pragma target 5.0 //#endif #pragma vertex vert #pragma fragment frag #pragma multi_compile_instancing #include "UnityCG.cginc" struct appdata_t { fixed4 vertex : POSITION; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { fixed4 vertex : SV_POSITION; fixed4 color : COLOR0; UNITY_VERTEX_OUTPUT_STEREO }; float4x4 _ParentLocalToWorldMatrix; UNITY_INSTANCING_BUFFER_START(Props) UNITY_DEFINE_INSTANCED_PROP(float4, _Color) UNITY_INSTANCING_BUFFER_END(Props) v2f vert(appdata_t v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.vertex = mul(UNITY_MATRIX_VP, mul(_ParentLocalToWorldMatrix, mul(unity_ObjectToWorld, float4(v.vertex.xyz, 1.0)))); o.color = UNITY_ACCESS_INSTANCED_PROP(Props, _Color); return o; } fixed4 frag(v2f i) : SV_Target { return i.color; } ENDCG } } }