Preview_TemplateShaderProperty.shader 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. Shader "Hidden/TemplateShaderProperty"
  2. {
  3. Properties
  4. {
  5. [HideFromInspector]_IntData ( "_IntData", Int ) = 0
  6. [HideFromInspector]_FloatData ( "_FloatData", Float ) = 0
  7. [HideFromInspector]_VectorData ( "_VectorData", Vector ) = ( 0,0,0,0 )
  8. [HideFromInspector]_Sampler2DData ( "_Sampler2DData", 2D ) = "white" {}
  9. [HideFromInspector]_Sampler3DData ( "_Sampler3DData", 3D ) = "white" {}
  10. [HideFromInspector]_SamplerCubeData ( "_SamplerCubeData", Cube ) = "white" {}
  11. }
  12. CGINCLUDE
  13. #include "UnityCG.cginc"
  14. #include "Preview.cginc"
  15. uniform int _IntData;
  16. uniform float _FloatData;
  17. uniform float4 _VectorData;
  18. uniform sampler2D _Sampler2DData;
  19. uniform sampler3D _Sampler3DData;
  20. uniform samplerCUBE _SamplerCubeData;
  21. #pragma vertex vert_img
  22. #pragma fragment frag
  23. float4 CalculatePreviewColor ( v2f_img i, const int dataType )
  24. {
  25. /*Int*/ if ( dataType == 0 ) return float4( _IntData.xxx,1);
  26. /*Float*/ if ( dataType == 1 ) return float4( _FloatData.xxx, 1 );
  27. /*Vector4/Color*/ if ( dataType == 2 ) return _VectorData;
  28. /*Sampler 2D*/ if ( dataType == 3 ) return tex2D ( _Sampler2DData, i.uv );
  29. /*Sampler 3D*/ if ( dataType == 4 ) return tex3D ( _Sampler3DData, float3( i.uv, 0.0 ) );
  30. /*Sampler Cube*/ if ( dataType == 5 ) return texCUBE ( _SamplerCubeData, float3( i.uv, 0.0 ) );
  31. return (0).xxxx;
  32. }
  33. ENDCG
  34. SubShader
  35. {
  36. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,0); } ENDCG }
  37. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,1); } ENDCG }
  38. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,2); } ENDCG }
  39. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,3); } ENDCG }
  40. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,4); } ENDCG }
  41. Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,5); } ENDCG }
  42. }
  43. }