Shader "Hidden/RotatorNode" { Properties { _A ("_UVs", 2D) = "white" {} _B ("_Anchor", 2D) = "white" {} _C ("_RotTimeTex", 2D) = "white" {} } SubShader { Pass { CGPROGRAM #pragma vertex vert_img #pragma fragment frag #include "UnityCG.cginc" #include "Preview.cginc" sampler2D _A; sampler2D _B; sampler2D _C; float _UsingEditor; float _EditorTime; float4 frag(v2f_img i) : SV_Target { float multiplier = tex2D ( _C, i.uv ).r; float time = _EditorTime*multiplier; if ( _UsingEditor == 0 ) { time = multiplier; } float cosT = cos( time ); float sinT = sin( time ); float2 a = tex2D( _B, i.uv ).rg; return float4( mul( tex2D( _A, i.uv ).xy - a, float2x2( cosT, -sinT, sinT, cosT ) ) + a, 0, 1 ); } ENDCG } } }