You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

47 lines
1.9 KiB

Shader "Hidden/TemplateShaderProperty"
{
Properties
{
[HideFromInspector]_IntData ( "_IntData", Int ) = 0
[HideFromInspector]_FloatData ( "_FloatData", Float ) = 0
[HideFromInspector]_VectorData ( "_VectorData", Vector ) = ( 0,0,0,0 )
[HideFromInspector]_Sampler2DData ( "_Sampler2DData", 2D ) = "white" {}
[HideFromInspector]_Sampler3DData ( "_Sampler3DData", 3D ) = "white" {}
[HideFromInspector]_SamplerCubeData ( "_SamplerCubeData", Cube ) = "white" {}
}
CGINCLUDE
#include "UnityCG.cginc"
uniform int _IntData;
uniform float _FloatData;
uniform float4 _VectorData;
uniform sampler2D _Sampler2DData;
uniform sampler3D _Sampler3DData;
uniform samplerCUBE _SamplerCubeData;
#pragma vertex vert_img
#pragma fragment frag
float4 CalculatePreviewColor ( v2f_img i, const int dataType )
{
/*Int*/ if ( dataType == 0 ) return float4( _IntData.xxx,1);
/*Float*/ if ( dataType == 1 ) return float4( _FloatData.xxx, 1 );
/*Vector4/Color*/ if ( dataType == 2 ) return _VectorData;
/*Sampler 2D*/ if ( dataType == 3 ) return tex2D ( _Sampler2DData, i.uv );
/*Sampler 3D*/ if ( dataType == 4 ) return tex3D ( _Sampler3DData, float3( i.uv, 0.0 ) );
/*Sampler Cube*/ if ( dataType == 5 ) return texCUBE ( _SamplerCubeData, float3( i.uv, 0.0 ) );
return (0).xxxx;
}
ENDCG
SubShader
{
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,0); } ENDCG }
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,1); } ENDCG }
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,2); } ENDCG }
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,3); } ENDCG }
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,4); } ENDCG }
Pass{ CGPROGRAM float4 frag ( v2f_img i ) : SV_Target { return CalculatePreviewColor(i,5); } ENDCG }
}
}