18 lines
609 B
HLSL
18 lines
609 B
HLSL
uniform half _TouchReactActive;
|
|
sampler2D _TouchReact_Buffer;
|
|
float4 _TouchReact_Pos;
|
|
|
|
float3 TouchReactAdjustVertex(float3 pos)
|
|
{
|
|
float3 worldPos = mul(unity_ObjectToWorld, float4(pos, 1));
|
|
float2 tbPos = saturate((float2(worldPos.x, -worldPos.z) - _TouchReact_Pos.xz) / _TouchReact_Pos.w);
|
|
float2 touchBend = tex2Dlod(_TouchReact_Buffer, float4(tbPos, 0, 0));
|
|
touchBend.y *= 1.0 - length(tbPos - 0.5) * 2;
|
|
if (touchBend.y > 0.01)
|
|
{
|
|
worldPos.y = min(worldPos.y, touchBend.x * 10000);
|
|
}
|
|
|
|
float3 changedLocalPos = mul(unity_WorldToObject, float4(worldPos, 1)).xyz;
|
|
return changedLocalPos - pos;
|
|
} |