48 lines
1.9 KiB
Plaintext
48 lines
1.9 KiB
Plaintext
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 }
|
|
}
|
|
}
|